Nun, wenn Sie Prototypvererbung verwenden neue Klassen zu erstellen, werden Sie so etwas tun:
function MyBaseClass() {
// common stuff here
}
function MySubClass() {
// subclass-specific stuff here
}
MySubClass.prototype = new MyBaseClass();
Die letzte Zeile der Vererbungskette zu etablieren erforderlich ist. Es hat jedoch auch den Nebeneffekt, den Rumpf von MyBaseClass
auszuführen, der Probleme verursachen kann (insbesondere wenn die MyBaseClass
-Funktion Argumente erwartet).
Wenn Sie nicht wollen, dass das geschehen, so etwas wie folgt aus:
function MyBaseClass() {
this.init = function() {
// initialisation stuff here
}
// common stuff here
}
function MySubClass() {
// subclass-specific stuff here
this.init();
}
MySubClass.prototype = new MyBaseClass();
Der Code Initialisierung in init
jetzt wird nur ausgeführt, wenn Sie eine Instanz von MySubClass
erstellen.
Wird Init-Code auch im ersten Fall ausgeführt werden? Es sieht so aus, als würdest du diese Funktion nicht aufrufen (was auch immer das ist). Es ist kein konventioneller "Konstruktor" wie normalerweise in Javascript. – Kekoa