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

Zusammenfassung der MySQL-Fremdschlüsseleinschränkungen und Tabellenbeziehungen

Inhaltsverzeichnis Fremdschlüssel So ermitteln Si...

Detaillierte Erklärung des Vue-Lebenszyklus

Inhaltsverzeichnis Warum den Lebenszyklus versteh...

js, um einen einfachen Bild-Drag-Effekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

So aktivieren Sie die JMX-Überwachung über Tomcat

Erstellen Sie eine Simulationsumgebung: Betriebss...

Detaillierte Untersuchung des MySQL-Verbundindex

Ein zusammengesetzter Index (auch gemeinsamer Ind...

Was Sie beim Schreiben selbstschließender XHTML-Tags beachten sollten

Das img-Tag in XHTML sollte wie folgt geschrieben...

So ändern Sie die Größe von Partitionen in CentOS7

Gestern habe ich jemandem bei der Installation ei...

Optimierungsmethoden, wenn MySQL zu viel CPU beansprucht (unbedingt lesen)

Wenn MySQL zu viel CPU beansprucht, wo sollten wi...

So zeigen Sie den Kennwortablauf unter Linux an und konfigurieren ihn

Mit den richtigen Einstellungen können Sie Linux-...

So führen Sie .sh-Dateien im Linux-System aus

Es gibt zwei Möglichkeiten, .sh-Dateien im Linux-...

Ubuntu16.04 Installation mysql5.7.22 Grafik-Tutorial

Installations-Tutorial für VMware12.0+Ubuntu16.04...