Eine Methode in einem JavaScript-Konstruktor aufrufen und auf ihre Variablen zugreifen
Ich versuche das aufrufen einer Methode aus dem Konstruktor von javascript Konstruktor, ist das möglich und wenn ja, kann ich nicht scheinen, um es funktioniert, keine Einsicht wäre toll! Danke!
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");
}
BEARBEITEN
Habe ich es mit dem arbeiten was ist oben, aber ich kann nicht scheinen, um Zugriff auf die "errArray' variable in CreateErrorList Funktion.
InformationsquelleAutor der Frage alvincrespo | 2010-02-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist möglich, wenn der Konstruktor-Funktion ausgeführt, die
this
Wert hat schon die[[Prototype]]
interne Eigenschaft zeigt auf dieValidateFields.prototype
Objekt.Nun, indem man die edit -, die
errArray
variable ist nicht in den Anwendungsbereich derCreateErrorList
Methode, da es gebunden ist ausschließlich für den Geltungsbereich des Konstruktors selbst.Wenn Sie brauchen, um diese variable private und erlauben nur die
CreateErrorList
- Methode zugreifen, Sie können ihn definieren als privilegierte Methodeinnerhalb des Konstruktors:Beachten Sie, dass die Methode, da es gebunden ist, zu
this
werden nicht gemeinsamen und es wird physisch auf alle Objekt Instanzen derValidateFields
.Weitere option, wenn Sie nichts dagegen haben die
errArray
variable als öffentlichen Eigenschaft der Objekt-Instanzen, die Sie gerade haben, ordnen Sie es mit denthis
Objekt:Mehr info:
InformationsquelleAutor der Antwort CMS
Lösung:
Hoffe, dies hilft jemand, der vielleicht eine Frage wie diese in der Zukunft.
InformationsquelleAutor der Antwort alvincrespo
Erstellen Sie ein Objekt der
ValidateFields
irgendwo?Bearbeiten: Sie müssen voranstellen
this
immer, wenn es sich um eine Funktion, die öffentlichen Eigenschaften.Aktualisiert den code hier:
http://jsbin.com/afiru/edit
InformationsquelleAutor der Antwort Anurag