首頁 >web前端 >js教程 >JavaScript 中的 proto 和 Constructor.prototype 有什麼不同?

JavaScript 中的 proto 和 Constructor.prototype 有什麼不同?

Patricia Arquette
Patricia Arquette原創
2024-10-21 10:08:02952瀏覽

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

proto 和constructor.prototype

物件的proto

物件的

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

Gadget.prototype.rating = 3;

var newtoy = new Gadget("webcam", "black");</code>
屬性之間的區別其原型對象,其中包含共享屬性和方法。相反,constructor.prototype 指向物件建構函式的原型屬性。

以下範例說明了差異:

在這種情況下,newtoy.__proto__ 指向 Gadget。 prototype,它具有屬性評級,而newtoy.constructor.prototype也指向Gadget.prototype。然而,newtoy.constructor.prototype.constructor.prototype.constructor.prototype 傳回 null,因為除了 Object.prototype 之外沒有進一步的原型。

這是因為

proto

是對原型對象,而constructor.prototype遵循原型鏈。當你多次造訪constructor.prototype時,你會遍歷原型鏈,直到你到達頂層Object.prototype。

在Internet Explorer中,沒有__proto__屬性。相反,您可以使用 [[Prototype]] 屬性來存取物件的原型。然而,這個屬性在標準 JavaScript 程式碼中是無法存取的。 引用原型物件可以幫助您理解 JavaScript 中的繼承層次結構,並提供一種在相關物件之間共享屬性和方法的機制。

以上是JavaScript 中的 proto 和 Constructor.prototype 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn