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
Toy Story 3 Online-Marketing-Website Zen Mobile E...
Vorwort Jeder weiß, dass viele Websites mittlerwe...
Finden Sie das Problem Heute bin ich auf ein Prob...
In diesem Artikelbeispiel wird der spezifische JS...
Mit dem MySQL-Befehl „explain“ können Sie die Lei...
Docker-Installation Verwenden Sie das offizielle ...
Das Core Asset Management Project erfordert, dass...
Die Ausführungseffizienz der MySQL-Datenbank hat ...
In diesem Artikel wird die Methode zum manuellen ...
Inhaltsverzeichnis Installieren Sie Sakila Index-...
CentOS 8 ist schon seit längerem auf dem Markt. A...
Inhaltsverzeichnis Vorwort Szenarien für die Verw...
Bevor wir beginnen, erstellen wir zwei Tabellen, ...
Inhaltsverzeichnis Entprellen Gaspedal Zusammenfa...
Inhaltsverzeichnis 1. Einleitung 2. Installieren ...