Heim > Web-Frontend > js-Tutorial > Was ist eine js-Prototypkette?

Was ist eine js-Prototypkette?

little bottle
Freigeben: 2019-05-31 10:45:00
Original
15916 Leute haben es durchsucht

Die Prototypkette ist ein Mechanismus, was bedeutet, dass jedes Objekt in JavaScript, einschließlich des Prototypobjekts, über ein integriertes [[proto]]-Attribut verfügt, das auf das Prototypobjekt des Funktionsobjekts verweist, das es erstellt hat , das Prototypattribut.

Was ist eine js-Prototypkette?

Funktion: Die Existenz der Prototypkette besteht hauptsächlich darin, die Vererbung von Objekten zu realisieren.

Ein paar Konzepte zur Prototypenkette:

1. Funktionsobjekt

Funktionen Das ist das Objekt.

2. Prototypobjekt

Wenn ein Funktionsobjekt definiert wird, enthält es ein vordefiniertes Attribut namens Prototyp, das als Prototypobjekt bezeichnet wird.

//函数对象
function F(){};
console.log(F.prototype)
Nach dem Login kopieren

Was ist eine js-Prototypkette?

3. __proto__

Wenn JavaScript ein Objekt erstellt, gibt es ein integriertes Attribut [[proto]]. . Ein Prototyp, der auf das Funktionsobjekt verweist, das ihn erstellt hat. Prototypobjekte haben auch [[proto]]-Attribute. Daher wird durch ständiges Zeigen eine Prototypenkette gebildet.

Wenn wir beispielsweise das Prototypobjekt von Objekt F ändern, können wir die obige Beziehung deutlich erkennen

//函数对象
function F(){};
F.prototype = {
    hello : function(){}
};
var f = new F();
console.log(f.__proto__)
Nach dem Login kopieren

Was ist eine js-Prototypkette?

4 , new

Die Verwendung von new zum Aufrufen des Konstruktors entspricht der Ausführung von

var o = {};
o.__proto__ = F.prototype;
F.call(o);
Nach dem Login kopieren

. Daher spielt new eine Schlüsselrolle bei der Implementierung der Prototypenkette.

5. Konstruktor

Der Prototypobjekt-Prototyp verfügt über ein vordefiniertes Konstruktorattribut, das zur Referenzierung seines Funktionsobjekts verwendet wird. Dies ist ein Zirkelverweis.

function F(){};
F.prototype.constructor === F;
Nach dem Login kopieren

In tatsächlichen Anwendungen wird häufig die folgende Schreibmethode verwendet

function F(){};
F.prototype = {
    constructor : F,
    doSomething : function(){}
}
Nach dem Login kopieren

Der Grund, warum hier ein Konstruktor hinzugefügt wird, liegt darin, dass das Prototypobjekt neu geschrieben wird und das Konstruktorattribut verschwindet, was Sie tun müssen manuell ausfüllen.

6. Speicherstruktur der Prototypenkette

rrree

Das obige ist der detaillierte Inhalt vonWas ist eine js-Prototypkette?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage