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 } }
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