Да, возможно, когда ваша функция конструктора выполняется, значение this
уже имеет внутреннее свойство [[Prototype]]
, указывающее на объект ValidateFields.prototype
.
Теперь, посмотрев на ваши правкипеременная errArray
недоступна в области действия метода CreateErrorList
, поскольку она связана только с областью действия самого конструктора.
Если вам необходимо сохранить эту переменную private и разрешить доступ к нему только методу CreateErrorList
, вы можете определить его как привилегированный метод в конструкторе:
function ValidateFields(pFormID){
var aForm = document.getElementById(pFormID);
var errArray = [];
this.CreateErrorList = function (formstatid){
// errArray is available here
};
//...
this.CreateErrorList();
}
Обратите внимание, что метод, так как он связанна this
, не будет общим и будет существовать физически на всех экземплярах объекта ValidateFields
.
Другой вариант, если вы не возражаете против errArray
переменная, как public свойство ваших экземпляров объекта, вам просто нужно присвоить его объекту this
:
//..
this.errArray = [];
//..
Дополнительная информация: