The Differences Between proto and constructor.prototype
The proto property of an object references its prototype object, which contains shared properties and methods. In contrast, constructor.prototype points to the prototype property of the object's constructor function.
The following example illustrates the distinction:
function Gadget(name, color) {
this.name = name;
this.color = color;
}
Gadget.prototype.rating = 3;
var newtoy = new Gadget("webcam", "black");
In this case, newtoy.__proto__ points to Gadget.prototype, which has the property rating, while newtoy.constructor.prototype also points to Gadget.prototype. However, newtoy.constructor.prototype.constructor.prototype.constructor.prototype returns null because there is no further prototype beyond Object.prototype.
This is because proto is a direct reference to the prototype object, while constructor.prototype follows the prototype chain. When you access constructor.prototype multiple times, you traverse the prototype chain until you reach the top-level Object.prototype.
In Internet Explorer, there is no __proto__ property. Instead, you can use the [[Prototype]] attribute to access the prototype of an object. However, this attribute is not accessible in standard JavaScript code.
Referencing the prototype objects can help you understand the inheritance hierarchy in JavaScript and provides a mechanism for sharing properties and methods among related objects.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3