Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen proto und Constructor.prototype in JavaScript?

Was ist der Unterschied zwischen proto und Constructor.prototype in JavaScript?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-21 10:08:02849Durchsuche

What is the Difference Between proto and Constructor.prototype in JavaScript?

Die Unterschiede zwischen proto und constructionor.prototype

Die proto-Eigenschaft eines Objekts verweist auf sein Prototypobjekt, das gemeinsame Eigenschaften und Methoden enthält. Im Gegensatz dazu verweist „constructor.prototype“ auf die Prototypeigenschaft der Konstruktorfunktion des Objekts.

Das folgende Beispiel veranschaulicht den Unterschied:

<code class="javascript">function Gadget(name, color) {
  this.name = name;
  this.color = color;
}

Gadget.prototype.rating = 3;

var newtoy = new Gadget("webcam", "black");</code>

In diesem Fall zeigt newtoy.__proto__ auf Gadget. Prototyp, der über die Eigenschaftsbewertung verfügt, während newtoy.constructor.prototype auch auf Gadget.prototype verweist. Allerdings gibt newtoy.constructor.prototype.constructor.prototype.constructor.prototype null zurück, da es keinen weiteren Prototyp über Object.prototype hinaus gibt.

Dies liegt daran, dass proto eine direkte Referenz auf ist Prototyp-Objekt, während constructionor.prototype der Prototypenkette folgt. Wenn Sie mehrmals auf „constructor.prototype“ zugreifen, durchlaufen Sie die Prototypenkette, bis Sie die oberste Ebene „Object.prototype“ erreichen.

In Internet Explorer gibt es keine __proto__-Eigenschaft. Stattdessen können Sie das Attribut [[Prototype]] verwenden, um auf den Prototyp eines Objekts zuzugreifen. Auf dieses Attribut kann jedoch im Standard-JavaScript-Code nicht zugegriffen werden.

Die Referenzierung der Prototypobjekte kann Ihnen helfen, die Vererbungshierarchie in JavaScript zu verstehen und bietet einen Mechanismus zum Teilen von Eigenschaften und Methoden zwischen verwandten Objekten.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen proto und Constructor.prototype in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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