Manchmal stößt man beim Betrachten des Framework-Quellcodes auf 1. istPrototyp von() Der Schlüssel zum Verständnis dieser Funktion liegt in der Prototypenkette, die als einer der drei großen Berge von Die Grundsätze werden hier nicht im Detail beschrieben, aber vereinfacht ausgedrückt handelt es sich um drei Punkte:
Beispiel 1, Instanz der Objektklasse:lass o = neues Objekt(); console.log(Object.prototype.isPrototypeOf(o)); // wahr Da das Beispiel 2: Definieren Sie die Klasse Human selbst:Funktion Mensch() {} lass Mensch = neuer Mensch(); console.log(Mensch.prototype.isPrototypeOf(Mensch)); // wahr Dieses Beispiel ist dem vorherigen ähnlich. Da das Beispiel 3: Sehen wir uns an, ob der Prototyp des Objekts der Prototyp des Menschen ist:console.log(Objekt.prototype.isPrototypeOf(Mensch)); // wahr Warum? , was mit Code besser erklärt werden kann, siehe die folgende Ableitung: // Weil der Prototyp (__proto__) im Prototyp (Prototyp) des Menschen auf den Prototyp (Prototyp) des Objekts verweist Mensch.prototyp.__proto__ === Objekt.prototyp // Und weil der Prototyp des Menschen (__proto__) auf den Prototyp des Menschen (Prototyp) verweist huamn.__proto__ === Mensch.prototyp // Der Prototyp des menschlichen Objekts (__proto__) zeigt also auf den Prototyp des Objekts (Prototyp). huamn.__proto__.__proto__ === Objekt.prototyp Dies ist leicht zu verstehen, wenn man sich die Struktur des Menschen ansieht: Ist also Beispiel 4, ob Object.prototype der Prototyp einer integrierten Klasse ist: Die integrierten Klassen console.log(Objekt.prototype.isPrototypeOf(Zahl)); // wahr console.log(Object.prototype.isPrototypeOf(String)); // wahr console.log(Object.prototype.isPrototypeOf(Boolean)); // wahr console.log(Object.prototype.isPrototypeOf(Array)); // wahr console.log(Objekt.prototype.isPrototypeOf(Funktion)); // wahr Natürlich ist Beispiel 5, Objekt ist auch eine Funktion (Klasse): Erwähnenswert ist auch, dass Bitte sehen Sie sich die folgende Ausgabe an:
2. Unterschied zu instanceof Zum Beispiel: Funktion Mensch() {} lass Mensch = neuer Mensch(); // human ist eine Instanz von Human, daher ist die Ausgabe true console.log(menschliche Instanz von Mensch); // wahr // Da alle Klassen Object erben, gibt das Ergebnis auch true aus console.log(menschliche Instanz des Objekts); // wahr // Da das menschliche Objekt kein Array ist, ist die Ergebnisausgabe falsch console.log(menschliche Instanz von Array); // falsch Hier sind einige weitere Beispiele für integrierte Klassen: // [1,2,3] ist eine Instanz von Array, daher ist die Ausgabe wahr console.log([1, 2, 3] Instanz von Array); // wahr // Die Methode function(){} ist eine Instanz von Function und gibt daher true aus. console.log(function(){} Instanz der Funktion); Das Prinzip von Nach meinem Verständnis haben diese beiden Ausdrücke dieselbe Bedeutung, werden aber unterschiedlich geschrieben. Die folgenden beiden Ausgaben sollten gleich sein: console.log(Eine Instanz von B); Konsole.log(B.prototype.isPrototypeOf(A)); Zusammenfassung Um die Funktion Dies ist das Ende dieses Artikels über die Funktion Das könnte Sie auch interessieren:
|
<<: TinyEditor ist ein einfacher und benutzerfreundlicher HTML-WYSIWYG-Editor
>>: Umfassende Analyse des MySql-Master-Slave-Replikationsmechanismus
Inhaltsverzeichnis Vorwort 1. DDL 1.1 Datenbankop...
Es ist sehr einfach, Daten und Tabellen in MySQL ...
Inhaltsverzeichnis Funktionale Komponenten So sch...
Ich habe die vorherigen Hinweise zur Installation...
.imgbox{ Breite: 1200px; Höhe: 612px; Rand rechts...
Melden Sie sich bei Ihrem Konto an export DOCKER_...
Inhaltsverzeichnis Lebenszyklusfunktionen Allgeme...
Im vorherigen Artikel zu Docker wurde die Konstru...
1. Installieren und starten Sie nginx # Installie...
Bereitstellungsumgebung: Installationsversion Red...
#String-Verkettung concat(s1,s2); verkette die St...
Docker installieren Sie müssen Docker installiere...
Vorwort Die Standarddatenbankdatei der MySQL-Date...
Ich bin kürzlich auf das Audiovisual Linux Projec...
1. Anwendungsszenarien Es gibt eine solche Anford...