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