Prototype
Nota
JavaScript é baseado em prototypes (protótipos) para acessar propriedades e métodos de um objeto para outro, ou seja, é a forma da linguagem de trabalhar com POO.
Prototypes é um objeto, que é anexado automaticamente pelo JavaScript, nos objetos criados pela função construtora. No objeto prototype
é armazenado os “moldes/modelos” para a replicar os métodos em todas as instâncias.
Todo objeto tem um referência interna para um protótipo ([objeto/instâncias].__proto__
), que vem na propriedade prototype
da função construtora ([nome da função construtora].prototype
) utilizada para criá-lo.
Exemplo
function Pessoa(nome, sobrenome) {
this.nome = nome;
this.sobrenome = sobrenome;
this.nomeCompleto = () => `${this.nome} ${this.sobrenome}`;
}
Pessoa.prototype.falar = "Olá";
const pessoa = new Pessoa("Luiz", "Otávio");
console.log(pessoa.falar); // Olá
console.dir(pessoa);
/*
Pessoa {
nome: 'Luiz',
sobrenome: 'Otávio',
}
*/