I am trying to call a method from the constructor of my javascript constructor, is this possible and if so, I can’t seem to get it working, any insight would be great! Thanks!
function ValidateFields(pFormID){
var aForm = document.getElementById(pFormID);
this.errArray = new Array();//error tracker
this.CreateErrorList();
}
/*
* CreateErrorList()
* Creates a list of errors:
* <ul id="form-errors">
* <li>
* You must provide an email.
* </li>
* </ul>
* returns nothing
*/
ValidateFields.prototype.CreateErrorList = function(formstatid){
console.log("Create Error List");
}
I got it to work with what is above, but I can’t seem to access the ‘errArray’ variable in CreateErrorList function.
Yes, it is possible, when your constructor function executes, the
thisvalue has already the[[Prototype]]internal property pointing to theValidateFields.prototypeobject.Now, by looking at the your edit, the
errArrayvariable is not available in the scope of theCreateErrorListmethod, since it is bound only to the scope of the constructor itself.If you need to keep this variable private and only allow the
CreateErrorListmethod to access it, you can define it as a privileged method, within the constructor:Note that the method, since it’s bound to
this, will not be shared and it will exist physically on all object instances ofValidateFields.Another option, if you don’t mind to have the
errArrayvariable, as a public property of your object instances, you just have to assign it to thethisobject:More info: