Dieser Artikel beschreibt den Konstruktor -Vererbungsverbrauch, der durch JS -Kapselung verwendet werden kann. Teilen Sie es für Ihre Referenz. Die Details sind wie folgt:
Schauen wir uns den folgenden Code an
Methoden, die in der (YUI) Bibliothek verwendet werden:
Kopieren Sie den Code wie folgt: Funktion erweitert (untergeordnet, übergeordnet) {{
var f = function () {};
F.Prototype = parent.prototype;
Child.Prototype = new f ();
Child.Prototype.Constructor = Child;
Child.uber = parent.prototype;
}
Es gibt auch eine Kopievererbungsmethode, Attributkopie:
Diese Methode unterscheidet sich von zuvor. Da der Kinderprototyp erweitert wurde, müssen das Kind nicht mehr überschrieben werden.
Im Vergleich zur vorherigen Methode ist diese Methode offensichtlich bessere Effizienz. Denn was hier ausgeführt wird, ist eine Kopie des Sub-Object-Prototyps nacheinander. Anstatt eine einfache Prototyp -Kettenabfrage.
Diese Methode gilt nur für Objekte, die nur grundlegende Datentypen enthalten. Alle Objekttypen, einschließlich Funktionen und Arrays, sind nicht reproduzierbar. Sie unterstützen nur den Referenzpass.
Kopieren Sie den Code wie folgt: Funktion Extend2 (untergeordnet, übergeordnet) {{
var p = parent.prototype;
var c = child.Prototyp;
für (var i in p) {
c [i] = p [i];
}
C.uber = P;
}
var form = function () {}
var twodShape = function () {}
Shape.Prototype.Name = 'Form';
Shape.Prototype.toString = function () {
kehre diesen namennamen zurück;
}
Extend2 (twodShape, Form);
var t = new twodShape ();
T.Name
//-> "Form"
T.ToString ();
//-> "Form"
TwodShape.prototype.name = 'twodShape';
T.Name
//-> "2D-Form"
T.ToString ();
//-> "2D-Form"
TwodShape.prototype.toString === Shape.Prototype.toString
//-> wahr
TwodShape.prototype.name === Shape.Prototype.name
//-> falsch
Ich hoffe, dieser Artikel wird für JavaScript -Programme aller hilfreich sein.