Las diferencias entre proto y constructor.prototype
La propiedad proto de un objeto hace referencia a su objeto prototipo, que contiene propiedades y métodos compartidos. Por el contrario, constructor.prototype apunta a la propiedad prototipo de la función constructora del objeto.
El siguiente ejemplo ilustra la distinción:
function Gadget(name, color) {
this.name = name;
this.color = color;
}
Gadget.prototype.rating = 3;
var newtoy = new Gadget("webcam", "black");
En este caso, newtoy.__proto__ apunta a Gadget.prototype, que tiene la calificación de propiedad, mientras que newtoy.constructor.prototype también apunta a Gadget .prototipo. Sin embargo, newtoy.constructor.prototype.constructor.prototype.constructor.prototype devuelve null porque no hay ningún prototipo más allá de Object.prototype.
Esto se debe a que proto es una referencia directa al objeto prototipo, mientras que constructor.prototype sigue la cadena del prototipo. Cuando accedes a constructor.prototype varias veces, atraviesas la cadena de prototipos hasta llegar al nivel superior Object.prototype.
En Internet Explorer, no existe la propiedad __proto__. En su lugar, puede utilizar el atributo [[Prototype]] para acceder al prototipo de un objeto. Sin embargo, no se puede acceder a este atributo en el código JavaScript estándar.
Hacer referencia a los objetos prototipo puede ayudarle a comprender la jerarquía de herencia en JavaScript y proporciona un mecanismo para compartir propiedades y métodos entre objetos relacionados.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3