1
resposta

Dúvida sobre texto Protótipo VS prototype

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAqui no texto fala que "São estes objetos que contêm a propriedade prototype que acessamos com Object.prototype, Array.prototype", mas a propriedade "prototype" não é exclusiva de funções? Então como os objetos contêm a propriedade "prototype"? Na parte "são estes objetos que contêm a propriedade "prototype", quem são "estes objetos" que o texto se refere?

1 resposta

Oi, Luidi! Tudo bem?

No JavaScript, todos os objetos têm um 'modelo' chamado protótipo, ele é como uma 'caixa de ferramentas' que o objeto pode usar. Ou seja, se você tentar acessar algo no objeto e ele não tiver, ele vai olhar nessa caixa de ferramentas (o protótipo) para ver se encontra e é assim que os objetos 'herdam' funcionalidades.

Agora, pense nas funções construtoras (funções usadas para criar objetos) como se fossem 'fábricas'! Essas funções têm uma propriedade especial chamada prototype, que é como um plano onde você coloca ferramentas e funcionalidades que todas as instâncias (os objetos criados pela fábrica) vão compartilhar. Ou seja, você não precisa repetir o mesmo código para cada objeto, todos pegam essas ferramentas do mesmo lugar.

Um exemplo prático é:

// Função construtora: 'Carro' é uma fábrica de carros
function Carro(marca) {
  this.marca = marca; // Cada carro tem sua própria marca
}

// Adicionamos um método no protótipo da função
Carro.prototype.andar = function () {
  console.log(this.marca + " está andando!");
};

// Criamos dois carros
const carro1 = new Carro("Toyota");
const carro2 = new Carro("Honda");

// Ambos podem usar o método 'andar' do protótipo
carro1.andar(); // Toyota está andando!
carro2.andar(); // Honda está andando!

Aqui, o método andar não está duplicado em cada carro, ele fica no protótipo, assim todos os carros podem usá-lo, economizando memória e organizando o código.

Espero ter ajudado! Caso tenha restado alguma dúvida em relação a qualquer conteúdo do curso ou atividade, não hesite em perguntar, estou disponível e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!