Ich habe Code, der wie folgt aussieht:Prototyp für private Unter Methoden
var baseClass = function() {
// CODE
var subClass = function() {
// MORE CODE
}
}
Methoden zur Basisklasse Hinzufügen ist in Ordnung, ich verwende nur
baseClass.prototype.newMethod = function() {
// NEW CODE
}
Meine Frage ist, wie sollte ich hinzufügen Methoden Unterklasse? Ist der einzige Weg, um es einfach zu einer öffentlichen Methode zu machen?
######## BEARBEITEN ##############OK, also habe ich den Code neu angeordnet, so dass die Unterklasse außerhalb der Basisklasse ist. Ich übergebe BaseClass, so dass SubClass weiterhin auf die Eigenschaften der Instanz von BaseClass zugreifen kann.
var baseClass = function() {
var base = this;
this.property_a = 1;
this.property_b = 5;
var sub = new subClass(base);
// CODE
}
var subClass = function(parent) {
var sub = this;
this.property_c = 1;
this.method_a = function() {
return sub.property_c + parent.property_a;
}
// MORE CODE
}
das ist in Ordnung und funktioniert, aber ich habe jetzt ein neues Problem, wenn ich eine Methode Prototyp hinzufügen:
subClass.prototype.method_b = function(){
return sub.property_c + parent.property_b;
}
ich einen Fehler sagen Eltern nicht definiert ist.
Grundsätzlich habe ich eine ziemlich einfache Webanwendung, die zwei Seiten hat, eine Betrachtungsseite und eine Bearbeitungsseite. Ich erstelle die Basisklasse, die alles enthält, was zum Anzeigen benötigt wird, und ich möchte die Methoden hinzufügen, die für die Bearbeitung in einer anderen Datei erforderlich sind, damit sie nur geladen werden, wenn sich ein Benutzer auf der Bearbeitungsseite befindet.
Tun Sie einfach subClass.prototype.newMethod, aus der Basisklasse, nein? Ich denke, das ist die Antwort von Gilly3. Persönlich sehe ich nicht, warum Sie die Methoden nach der Definition der "Klasse" hinzufügen müssen, warum müssen Sie JavaScript so kompliziert machen? Es ist wie prozedural eine Klasse zu erstellen und nicht nur eine zu definieren. –