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
<br />„Es gibt keine hässlichen Frauen auf d...
1. BIOS überprüfen Überprüfen Sie zunächst, in we...
Inhaltsverzeichnis Vorwort Grundlegende Verwendun...
Sehen wir uns die Situation an, in der SecureCRT ...
Die Attribute des <TR>-Tags werden verwende...
Inhaltsverzeichnis Vorwort Vue-Aktualisierungsans...
Ich bin kürzlich auf das Audiovisual Linux Projec...
Inhaltsverzeichnis Grundlegende Übersicht GTID on...
Umsetzungsideen: Verwenden Sie text-shadow in CSS...
Typ ist das Steuerelement, das für die Eingabe und...
1. Ergebnisse erzielen 2. Vom Backend zurückgegeb...
Problembeschreibung: Struktur: test hat zwei Feld...
Installationsvorschlag : Versuchen Sie, für die I...
Schluss mit Unsinn, Postleitzahl HTML-Teil <di...
Mac wird mit Apache-Umgebung geliefert Öffnen Sie...