Eine kurze Diskussion über JS-Prototypen und Prototypenketten

Eine kurze Diskussion über JS-Prototypen und Prototypenketten

1. Prototyp

Alle Funktionen in JavaScript haben diese Eigenschaft und alle Objekte mit einer Prototypeigenschaft sind Funktionen. Der Zweck eines Prototyps besteht darin, einem Objekt eine Methode/Eigenschaft hinzuzufügen.

Funktion Persistenz () {}
person.prototype.name = "xiaoming"
console.log(person.prototype)//{name: "xiaoming", Konstruktor: ƒ}

2. Prototypzeiger: __proto__

Wenn die obige Persion-Funktion ein Instanzobjekt Persion1 generiert und mithilfe von prototype ein Attribut hinzufügt, lautet die Schreibweise wie folgt:

Funktion Persistenz () {}
person.prototype.name = "xiaoming"
let Persion1 = neue Persion();
console.log(Persion1) //Die Konsolenergebnisse sind wie folgt

Die Ergebnisse des Druckvorgangs für die Instanz Persion1 lauten wie folgt:

Aus den oben ausgedruckten Ergebnissen geht hervor, dass Persion1.__proto__.name = persion.prototype.name ist, d. h. das __proto__-Attribut des Instanzobjekts ist gleich dem Prototyp seines Konstruktors.

Nachdem wir das Obige verstanden haben, ist die Prototypenkette leicht zu verstehen. Wir können die Objektmethode direkt über Persion1.__proto__.__proto__ finden. Dies ist möglicherweise nicht sehr intuitiv, hier ist der Code:

Funktion Persistenz () {}
person.prototype.name = "xiaoming"
let Persion1 = neue Persion();
console.log(Persion1.__proto__.__proto__.toString) //Die toString-Methode von Object, die über die Prototypenkette gefunden wurde console.log(Object.prototype.toString) //Die toString-Methode von Object

Die Konsole druckt die folgenden Ergebnisse, die die Funktion der stufenweisen Suche der Prototypkette bestätigen.

Zusammenfassen

Jedes Objekt kann Ebene für Ebene durch die Prototypenkette, also das Attribut __proto__, durchsucht werden. Der letzte Fokus liegt auf dem Objekt, und der einzige Weg ist die Funktion. Ihre Beziehung ist wie eine Kette, und wir nennen diese Beziehung eine Prototypkette.

Oben finden Sie eine kurze Erläuterung der Details des JS-Prototyps und der Prototypenkette. Weitere Informationen zum JS-Prototyp und zur Prototypenkette finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der JavaScript-Prototypenkette
  • Details zum JavaScript-Prototyp und zur Prototypkette
  • Verstehen Sie JavaScript-Prototypen und Prototypenketten gründlich
  • Grundlegendes zur JavaScript-Prototypenkette
  • Synchrone und asynchrone JS-Schwierigkeiten sowie Umfang und Abschluss und detaillierte Erklärung von Prototypen und Prototypenketten
  • Umfassende Analyse von Prototypen, Prototypobjekten und Prototypketten in js
  • Detaillierte Erklärung von Prototypen und Prototypenketten in JavaScript

<<:  Detaillierte Analyse von MySQL-Ausführungsplänen

>>:  Detaillierter Prozess und häufige Probleme bei der VMware15-Installation von CentOS7 (Bild und Text)

Artikel empfehlen

Schritte zum Verpacken und Konfigurieren von SVG-Komponenten in Vue-Projekten

Ich bin erst vor Kurzem in eine neue Firma einges...

Tutorial zur Installation und Verwendung von virtualenv in Deepin

virtualenv ist ein Tool zum Erstellen isolierter ...

Eine Screenshot-Demo basierend auf Canvas in HTML

Geschrieben am Anfang Ich erinnere mich, dass ich...

Wie implementiert die MySQL-Datenbank die XA-Spezifikation?

MySQL-Konsistenzprotokoll Was passiert mit nicht ...

Welche Vorteile bietet die Verwendung von B+Tree als Index in MySQL?

Inhaltsverzeichnis Warum benötigen Datenbanken In...

Häufige Fehler bei der Verwendung von React Hooks

React Hooks ist eine neue Funktion, die in React ...

Eine kurze Erläuterung der MySQL-Benutzerberechtigungstabelle

MySQL erstellt bei der Installation automatisch e...

Detaillierte Erläuterung der Vue-Lebenszyklusfunktionen

Inhaltsverzeichnis Lebenszyklusfunktionen Allgeme...

Auszeichnungssprachen – Nochmal auflisten

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Vue implementiert einen Login-Verifizierungscode

In diesem Artikelbeispiel wird der spezifische Co...

impress.js Präsentationsschicht-Framework (Demonstrationstool) - erste Erfahrungen

Ich habe ein halbes Jahr lang nicht gebloggt, wofü...

Detailliertes Beispiel für das Linux-Allround-Systemüberwachungstool dstat

Umfassendes Systemüberwachungstool dstat dstat is...