Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen Proto und Constructor.Prototype?

Was ist der Unterschied zwischen Proto und Constructor.Prototype?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-21 10:12:30345Durchsuche

What's the Difference Between proto and constructor.prototype?

Der Unterschied zwischen proto und constructionor.prototype

Verstehen Sie bei der Arbeit mit JavaScript-Objekten den Unterschied zwischen proto und constructionor.prototype sind entscheidend. Während proto auf den direkten Prototyp eines Objekts verweist, bezieht sich constructionor.prototype auf das Objekt, aus dem die Funktion erstellt wurde, die das Objekt erstellt hat. Diese Unterscheidung kann beim Durchlaufen von Prototypketten zu unterschiedlichen Ergebnissen führen.

Prototype Chain Traversal

Wie im bereitgestellten Code gezeigt, kann Proto verwendet werden um die Prototypenkette eines Objekts zu durchlaufen. Im Beispiel wird proto verwendet, um die Prototypenkette von newtoy, einer Instanz der Gadget-Funktion, zu durchlaufen. Jeder nachfolgende proto-Aufruf steigt eine Ebene in der Kette auf und gibt schließlich Null zurück, da es keinen Prototyp über Object.prototype hinaus gibt.

Allerdings, wenn constructionor.prototype.constructor.prototype.constructor.prototype verwendet wird, steigt es auch in der Prototypenkette auf, gibt aber schließlich die ursprüngliche Gadget-Funktion zurück, da es sich auf den Prototyp bezieht, aus dem der Gadget-Konstruktor erstellt wurde.

Nullprüfung im Internet Explorer

In Internet Explorer, wo die Eigenschaft proto nicht verfügbar ist, kann die Prototypkette mithilfe des Prototyp-Getters für das Funktionsobjekt durchlaufen werden. Der folgende Code zeigt, wie man auf Null prüft:

function checkNull(obj) {
  while (obj = obj.prototype) {
    // Check if the prototype is null
  }
}

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Proto und Constructor.Prototype?. 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