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
Heute ist der 618. und alle großen Einkaufszentre...
Dieser Artikel erläutert anhand von Beispielen di...
Was ich heute teilen möchte, ist die Verwendung v...
Linux-Version: CentOS 7 [root@azfdbdfsdf230lqdg1b...
Vorwort: Bei der Projektentwicklung werden in ein...
Inhaltsverzeichnis 1. Nutzen Sie Komponenten sinn...
1. Melden Sie sich bei MySQL an und verwenden Sie...
Inhaltsverzeichnis einführen Installation und Ver...
Problembeschreibung Nach der Installation von Qt5...
Der Autor dieses Artikels @子木yoyo hat ihn in seine...
Vorwort Die sogenannte Fuzzy-Abfrage dient dazu, ...
1. Die Verwendung mit Redis führt zu Startkonflik...
1. Szenariobeschreibung: Unsere Umgebung verwende...
Das W3C, eine 1994 gegründete Organisation, zielt...
Einführung: In vielen Fällen denken viele Leute, ...