Die gängigen Methoden zur Implementierung der Vererbung in Nicht-ES6-Code können wie folgt unterteilt werden: Strukturelle Vererbung (implementiert mit Aufruf)erreichen Funktion Super(Alter){ dieses.Alter = Alter; dies.sagen = function(){ console.log(dieses.Alter) } } Funktion Kind(Name,Alter){ Super.call(dieses,Alter) dieser.name = Name; } var Kind = neues Kind("min",23) console.log(untergeordnete Instanz von Super); // false console.log(untergeordnete Instanz von Child); // wahr Vorteil (1) Mehrfachvererbung kann erreicht werden (aufrufen mehrerer übergeordneter Klassenobjekte) Mangel (1) Sie können nur die Eigenschaften und Methoden der übergeordneten Klasseninstanz erben, nicht die Eigenschaften und Methoden des Prototyps Vererbung der Prototypkette (implementiert mit Hilfe der Prototypkette)erreichen Funktion Super(){ dies.getName = Funktion(){ console.log(dieser.Name) } } Funktion Kind(Name){ dieser.name = Name; } Child.prototype = new Super(); // Sie können hier den Konstruktionsparameter übergeben Child.prototype.constructor = Child; var Kind = neues Kind("min"); console.log(untergeordnete Instanz von Super); // true console.log(untergeordnete Instanz von Child); // wahr console.log(Kind.Konstruktor); // Kind Vorteil Mangel Kombinierte Vererbung (Konstruktionsvererbung + Prototypkettenvererbung)erreichen Funktion Super(Alter){ dieses.Alter = Alter; dies.getAge = Funktion(){ Konsole.log(dieses.Alter); } } Funktion Kind(Name,Alter){ Super.call(dieses,Alter) dieser.name = Name; } Child.prototype = neues Super(1); Kind.Prototyp.Konstruktor = Kind; var Kind = neues Kind("min",23); console.log(untergeordnete Instanz von Super); // true console.log(untergeordnete Instanz von Child); // wahr console.log(Kind.Konstruktor); // Kind Vorteil Mangel Parasitäre kompositorische Vererbungerreichen Funktion Super(Alter){ dieses.Alter = Alter; dies.getAge = Funktion(){ console.log(dieses.Alter) } } Funktion Kind(Name,Alter){ Super.call(dieses,Alter) dieser.name = Name; } (Funktion(){ Funktion Kopieren(){} Kopie.Prototyp = Super.Prototyp; Child.prototype = neue Kopie(); })() Kind.Prototyp.Konstruktor = Kind; var Kind = neues Kind("min",23); Hinweis: Warum nicht Child.prototype = Super.prototype direkt verwenden? Vorteil Extra: Mit (Object.create)erreichen Funktion Super(Alter){ dieses.Alter = Alter; dies.getAge = Funktion(){ console.log(dieses.Alter) } } Funktion Kind(Name,Alter){ Super.call(dieses,Alter) dieser.name = Name; } Child.prototype = Objekt.erstellen(Super.prototype,{ Konstruktor: { // Konstruktor repariert Wert: Child } }) var Kind = neues Kind("min",23); console.log(untergeordnete Instanz von Super); // true console.log(untergeordnete Instanz von Child); // wahr console.log(Kind.Konstruktor); // Kind Oben sind die Details mehrerer Möglichkeiten zur Implementierung von Vererbung in JavaScript aufgeführt. Weitere Informationen zur Implementierung von Vererbung in JavaScript finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der regulären Ausdrücke von Nginx
>>: Lösung zum Vergessen des MySQL-Root-Passworts in MACOS
Ich habe kürzlich an einer Kommentarfunktion gear...
Obwohl Microsoft T4-Vorlagen bereitstellt, finde ...
Code kopieren Der Code lautet wie folgt: 1. Sina ...
Zunächst stellen wir vor, wie (1) MySQL 5.7 hat e...
Basierend auf Vue und nativer JavaScript-Kapselun...
Inhaltsverzeichnis 1. Nachfragehintergrund 2. Opt...
Einführung Wie im vorherigen Artikel erwähnt, gib...
Inhaltsverzeichnis Hintergrund Hauptinhalt 1. Kom...
Vorwort WeChat-Miniprogramme bieten neue offene F...
Inhaltsverzeichnis 1. Docker installieren 2. Code...
1. Der Unterschied zwischen HTTP und HTTPS HTTP: ...
Warum? Am einfachsten lässt es sich so ausdrücken:...
Es ist schwierig, Websites mit gutem Bildmaterial...
Vorwort Ehrlich gesagt fühle ich mich in letzter ...
Kürzlich bestand der Kunde eines Projekts darauf,...