Nach dem Lesen dieses Artikels werden Sie feststellen, dass Prototypen und Prototypenketten so einfach sind! Das klassische Gleichheitsdiagramm der Prototypkette oben können Sie mit dem folgenden Lernprozess problemlos meistern. 1. Verständnis der Gleichheitsbeziehung zwischen Prototyp und PrototypketteZunächst müssen wir zwei Konzepte klar verstehen: Bitte lesen Sie diese beiden Konzepte dreimal mit mir durch und merken Sie sie sich. Sie werden später gebraucht. Was sind also
Bitte lesen Sie diese beiden Konzepte dreimal mit mir durch und merken Sie sie sich. Sie werden später gebraucht.
Funktion Person(Name, Alter){ dieser.name = Name; dieses.Alter = Alter; } Person.Prototyp.Mutterland = "China"
let person01 = neue Person('Xiaoming', 18); Der Vater von JS befolgte beim Entwurf von JS-Prototypen und Prototypenketten die folgenden beiden Prinzipien: Person.prototype.constructor == Person // **Richtlinie 1: Der Konstruktor des Prototypobjekts (also Person.prototype) zeigt auf den Konstruktor selbst** person01.__proto__ == Person.prototype // **Richtlinie 2: Das __proto__ der Instanz (also person01) und das Prototypobjekt zeigen auf die gleiche Stelle** Bitte lesen Sie diese beiden Regeln dreimal mit mir durch und merken Sie sie sich. Sie werden später verwendet. Denken Sie an die oben genannten vier Konzepte und zwei Kriterien . Jede Beurteilung der Gleichheit einer Prototypkette kann korrekt sein. Sie können das obige Bild überprüfen, um zu sehen, ob Sie das Konzept und die Kriterien verstanden haben. Sehen Sie sich unbedingt das obige Bild an. // Beginnen Sie mit der Analyse dieses klassischen Graphen von oben aus Funktion Foo() Funktion Foo() sei f1 = neues Foo(); sei f2 = neues Foo(); f1.__proto__ = Foo.prototype; // Regel 2 f2.__proto__ = Foo.prototype; // Regel 2 Foo.prototype.__proto__ = Object.prototype; // Regel 2 (Foo.prototype ist auch ein allgemeines Objekt, daher gilt Regel 2) Object.prototype.__proto__ = null; // Die Prototypenkette endet hier Foo.prototype.constructor = Foo; // Regel 1 Foo.__proto__ = Funktion.prototyp; // Regel 2 Function.prototype.__proto__ = Object.prototype; // Prinzip 2 (Function.prototype ist im Wesentlichen ein allgemeines Objekt, daher gilt Prinzip 2) Object.prototype.__proto__ = null; // Die Prototypenkette endet hier // **Beachten Sie hier den Unterschied zwischen Foo und Function, Foo ist eine Instanz von Function** // Beginnen Sie mit der Analyse dieses klassischen Graphen in der Mitte Function Object() Function Object() let o1 = neues Objekt(); let o2 = neues Objekt(); o1.__proto__ = Objekt.prototyp; // Regel 2 o2.__proto__ = Objekt.prototyp; // Regel 2 Object.prototype.__proto__ = null; // Die Prototypenkette endet hier Object.prototype.constructor = Object; // Regel 1 Object.__proto__ = Function.prototype // Prinzip 2 (Objekt ist im Wesentlichen eine Funktion); // Das ist etwas verwirrend. Object ist im Wesentlichen eine Funktion und Function ist im Wesentlichen ein Objekt. Function.prototype.__proto__ = Object.prototype; // Regel 2 (Function.prototype ist auch ein normales Objekt, daher gilt Regel 2) Object.prototype.__proto__ = null; // Die Prototypenkette endet hier // Beginnen Sie mit der Analyse dieses klassischen Diagramms von Function Function() unter Function Function() Funktion.__proto__ = Funktion.prototyp // Regel 2 Function.prototype.constructor = Funktion; // Regel 1 Daraus können wir schließen, dass mit Ausnahme des Prototypobjekts von Objekt.prototype.__proto__ = null; Array.prototype.__proto__ = Objekt.prototype; Foo.prototype.__proto__ = Objekt.prototype; 2: Was bedeuten Prototypen und Prototypenketten?
Nehmen Sie als Beispiel console.log(person01) Drucken Sie Erstellen wir eine Person2-Instanz let person02 = neue Person('Xiaohua', 20); console.log(person02) Drucken Sie Person.prototype.hairColor = "schwarz"; Person.prototype.eat = function(){ console.log('Normalerweise essen wir drei Mahlzeiten am Tag.') } console.log(person01) console.log(person02) Wenn wir zu diesem Zeitpunkt
person01,Haarfarbe = "gelb"; console.log(person01) console.log(person02) Es ist ersichtlich, dass die Haarfarbe von Dies ist das Ende dieses Artikels zum Verständnis der JS-Prototyp-Prototypkette. Weitere relevante Inhalte zur JS-Prototyp-Prototypkette finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Index-Skip-Scan in MySQL 8.0
>>: So installieren Sie Docker mithilfe von Skripten unter Linux Centos
Inhaltsverzeichnis Auf dem Server läuft Jupyter N...
Während der Olympischen Spiele wird IE 8 Beta 2 ve...
Vorwort In diesem Artikel werden einige Implement...
Als ich die Bücher über Redis und Spring Cloud Al...
Inhaltsverzeichnis Vorwort Zentrieren von Inline-...
Die Entwicklung der Docker-Technologie bietet ein...
Im vorherigen Artikel habe ich den detaillierten ...
#Case: Gehaltsstufen von Mitarbeitern abfragen WÄ...
Was bedeutet Strg+C, Strg+D, Strg+Z in Linux? Str...
Wir können jsx/tsx-Dateien direkt erstellen Die P...
Wenn Ihre MySQL-Datenbank auf einem CentOS7-Syste...
Detaillierte Einführung in die Schritte zur Insta...
Als ich vor kurzem mit einem Internet-Veteranen ü...
MySQL 4.x und höher bieten Unterstützung für die ...
Unicode-Signatur-BOM – Was ist die BOM? BOM ist di...