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
<br />Formulare sind für Benutzer ein wichti...
1. MHA Durch die Überwachung des Masterknotens ka...
Ich bin bei der Arbeit auf einen Fall gestoßen, ü...
Inhaltsverzeichnis 1. Einführung in import_table ...
String-Extraktion ohne Trennzeichen Fragenanforde...
Basierend auf Vue Die Kernidee dieser Funktion be...
Auf HTML-Seiten verfügen visuelle Elemente wie Sc...
Inhaltsverzeichnis 1 Ausführung und Planung 1.1 V...
Inhaltsverzeichnis Ein kurzer Überblick über die ...
<br />Im gesamten Produktdesignprozess liege...
In diesem Artikel wird der spezifische Code von j...
1. Funktionseinführung sed (Stream EDitor) ist ei...
Inhaltsverzeichnis Entwicklungsumgebung Game-Engi...
1. Überlauf Überlauf ist Überlauf (Container). We...
1. Überprüfen Sie die MySQL-Datenbankkodierung my...