„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Was ist der Unterschied zwischen Proto und Constructor.Prototype?

Was ist der Unterschied zwischen Proto und Constructor.Prototype?

Veröffentlicht am 19.11.2024
Durchsuche:981

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, verweist 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.

Wenn jedoch constructionor.prototype.constructor.prototype.constructor.prototype verwendet wird, steigt es ebenfalls in der Prototypenkette auf, gibt jedoch 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
  }
}
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729476436 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3