"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Qual é a diferença entre proto e Constructor.prototype em JavaScript?

Qual é a diferença entre proto e Constructor.prototype em JavaScript?

Publicado em 2024-11-11
Navegar:500

What is the Difference Between proto and Constructor.prototype in JavaScript?

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.

Declaração de lançamento Este artigo foi reimpresso em: 1729476318 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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