As diferenças entre proto e constructor.prototype
A propriedade proto de um objeto faz referência ao seu objeto protótipo, que contém propriedades e métodos compartilhados. Em contraste, constructor.prototype aponta para a propriedade protótipo da função construtora do objeto.
O exemplo a seguir ilustra a distinção:
function Gadget(name, color) {
this.name = name;
this.color = color;
}
Gadget.prototype.rating = 3;
var newtoy = new Gadget("webcam", "black");
Neste caso, newtoy.__proto__ aponta para Gadget.prototype, que tem a classificação de propriedade, enquanto newtoy.constructor.prototype também aponta para Gadget .protótipo. No entanto, newtoy.constructor.prototype.constructor.prototype.constructor.prototype retorna nulo porque não há mais protótipo além de Object.prototype.
Isso ocorre porque proto é uma referência direta ao objeto protótipo, enquanto constructor.prototype segue a cadeia de protótipos. Ao acessar constructor.prototype várias vezes, você percorre a cadeia de protótipos até chegar ao Object.prototype de nível superior.
No Internet Explorer, não há propriedade __proto__. Em vez disso, você pode usar o atributo [[Prototype]] para acessar o protótipo de um objeto. No entanto, esse atributo não está acessível no código JavaScript padrão.
Referenciar os objetos protótipo pode ajudá-lo a entender a hierarquia de herança em JavaScript e fornece um mecanismo para compartilhar propriedades e métodos entre objetos relacionados.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3