proto和constructor.prototype的差異
物件的proto屬性引用其原型對象,其中包含共享屬性和方法。相較之下,constructor.prototype 指向物件建構函式的原型屬性。
下面的範例說明了差異:
function Gadget(name, color) {
this.name = name;
this.color = color;
}
Gadget.prototype.rating = 3;
var newtoy = new Gadget("webcam", "black");
在本例中,newtoy.__proto__ 指向具有屬性評級的 Gadget.prototype,而 newtoy.constructor.prototype 也指向 Gadget 。原型。然而,newtoy.constructor.prototype.constructor.prototype.constructor.prototype傳回null,因為除了Object.prototype之外沒有進一步的原型。
這是因為proto是對原型對象,而constructor.prototype遵循原型鏈。當您多次造訪constructor.prototype時,您將遍歷原型鏈,直到您到達頂層Object.prototype。
在Internet Explorer中,沒有__proto__屬性。相反,您可以使用 [[Prototype]] 屬性來存取物件的原型。然而,這個屬性在標準 JavaScript 程式碼中是無法存取的。
引用原型物件可以幫助您理解 JavaScript 中的繼承層次結構,並提供在相關物件之間共享屬性和方法的機制。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3