1. EinleitungBevor Sie die Vererbung lernen, müssen Sie ein gewisses Verständnis der Prototypenkette haben. Wenn Sie es nicht verstehen, können Sie zunächst einen anderen Artikel von mir lesen, der eine ausführlichere Erklärung der Prototypenkette enthält: Detaillierte Erklärung der JavaScript-Prototypenkette. Wenn Sie es bereits verstanden haben, fahren Sie bitte fort. Ich habe zuvor einen Blogbeitrag geschrieben, in dem alle Vererbungsmethoden aufgelistet sind. Allerdings fand ich, dass er zu lang war, um ihn auf einmal durchzulesen, und dass er der Wissensaufnahme nicht förderlich ist. Deshalb werde ich zunächst den zusammengesetzten Vererbungsteil heraustrennen und den parasitären Teil später zusammenstellen. 2. Vererbung der Prototypkette Die Instanz der übergeordneten Klasse wird als Prototyp der untergeordneten Klasse verwendet. Der implizite Prototyp Lesen Sie das folgende Bild, um den Code besser zu verstehen: //Vater Klassenfunktion Vater() { dies.fatherAttr = ["fatherAttr"]; } //Eigenschaften des Prototyps der übergeordneten Klasse father.prototype.checkProto = "checkProto"; //Unterklassenfunktion child() {} //Verwende die Vaterinstanz als Prototyp des Kindkonstruktors child.prototype = new father(); Kind.Prototyp.Konstruktor = Kind; //Zwei Unterklasseninstanzen const test1 = new child(); const test2 = neues Kind(); console.log("Test 1:"); konsole.log("test1:", test1); console.log("test2:", test2); console.log("test1.fatherAttr:", test1.fatherAttr); console.log("test2.fatherAttr:", test2.fatherAttr); console.log("Test 2:"); test1.fatherAttr.push("neuesAttr"); console.log("test1.fatherAttr:", test1.fatherAttr); console.log("test2.fatherAttr:", test2.fatherAttr); console.log("Test 3:"); Konsole.log("test1.checkProto:", test1.checkProto); Merkmale:
3. Konstruktorvererbung Binden Sie //Vater Klassenfunktion Vater(Params) { dies.fatherAttr = ["fatherAttr"]; dies.params = Parameter; } //Eigenschaften des Prototyps der übergeordneten Klasse father.prototype.checkProto = "checkProto"; //Unterklassenfunktion child(params) { Vater.call(dies, Parameter); } //Zwei Unterklasseninstanzen const test1 = new child("params1"); const test2 = neues Kind("params2"); console.log("Test 1:"); konsole.log("test1:", test1); console.log("test2:", test2); console.log("test1.fatherAttr:", test1.fatherAttr); console.log("test2.fatherAttr:", test2.fatherAttr); console.log("Test 2:"); test1.fatherAttr.push("neuesAttr"); console.log("test1.fatherAttr:", test1.fatherAttr); console.log("test2.fatherAttr:", test2.fatherAttr); console.log("Test 3:"); Konsole.log("test1.checkProto:", test1.checkProto); Merkmale:
4. KombinationsvererbungDurch die Kombination der Prototypkettenvererbung und der Konstruktorvererbung können Sie sie entsprechend den Eigenschaften der beiden Vererbungen verwenden. //Vater Klassenfunktion Vater(Params) { dies.fatherAttr = ["fatherAttr"]; dies.params = Parameter; } //Eigenschaften des Prototyps der übergeordneten Klasse father.prototype.checkProto = "checkProto"; //Unterklassenfunktion child(params) { //Der zweite Aufruf des Konstruktors der übergeordneten Klasse father.call(this, params); } // Verwende die Vaterinstanz als Prototyp des Kindkonstruktors child.prototype = new father(); //Der Konstruktor der Elternklasse wird zum ersten Mal aufgerufen child.prototype.constructor = child; //Zwei Instanzen const test1 = new child("params1"); //Von hier zum Konstruktor der Unterklasse springen und den Konstruktor der übergeordneten Klasse ein zweites Mal aufrufen const test2 = new child("params2"); console.log("Test 1:"); konsole.log("test1:", test1); console.log("test2:", test2); console.log("test1.fatherAttr:", test1.fatherAttr); console.log("test2.fatherAttr:", test2.fatherAttr); console.log("Test 2:"); test1.fatherAttr.push("neuesAttr"); console.log("test1.fatherAttr:", test1.fatherAttr); console.log("test2.fatherAttr:", test2.fatherAttr); console.log("Test 3:"); Konsole.log("test1.checkProto:", test1.checkProto); console.log("Test 4:"); test1.fatherAttr löschen konsole.log("test1:", test1); console.log("test1.fatherAttr:", test1.fatherAttr); Merkmale:
Dies ist das Ende dieses Artikels mit der ausführlichen Erklärung der JavaScript-Kombination und -Vererbung. Weitere relevante Inhalte zur JavaScript-Kombination und -Vererbung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Einige Erkenntnisse und Gedanken zu iframe
>>: Bringen Sie Ihnen bei, wie Sie elegant eine vertikale Zentrierung erreichen (empfohlen)
Dies ist eine Website, die ich nachgeahmt habe, a...
Inhaltsverzeichnis 1. Hintergrund 2. Verifizierun...
MySQL-Einstellungscode für grüne Version und Fehl...
Inhaltsverzeichnis 1. Integrieren Sie Ant Design ...
In diesem Artikel finden Sie den spezifischen Cod...
Inhaltsverzeichnis 1. Plugins 2. Zwischenspiel 3....
Inhaltsverzeichnis Vorwort 1. Die übergeordnete K...
Geben Sie /usr/local/nginx/conf ein sudo cd /usr/...
Überblick Ich glaube, dass wir häufig auf solche ...
[Lösung 1: Padding-Implementierung] Prinzip: Wenn...
Null: Alte Version deinstallieren Ältere Versione...
1. MySQL entfernen a. sudo apt-get autoremove --p...
Konvertierung des Zeitformats von Montag auf Sonn...
Dieser Artikel stellt hauptsächlich ein Beispiel ...
Heute geht es noch immer um das Design von Watch-...