Sobes.tech
Middle

Como funciona o sistema de protótipos em JavaScript?

sobes.tech IA

Resposta da IA

No JavaScript, o sistema de protótipos é um mecanismo de herança no qual os objetos podem herdar propriedades e métodos de outros objetos.

Cada objeto tem uma propriedade interna [[Prototype]] (acessível através de __proto__ ou Object.getPrototypeOf), que aponta para outro objeto — o protótipo. Se ao aceder a uma propriedade do objeto ela não for encontrada, a busca continua no protótipo, depois no protótipo do protótipo, e assim por diante, até atingir null.

Isto permite criar cadeias de protótipos e implementar herança sem classes (embora nas versões modernas do JS exista a sintaxe de classes, que por baixo dos panos usa protótipos).

Exemplo:

const animal = {
  speak() {
    console.log('O animal fala');
  }
};

const cão = Object.create(animal);
cão.bark = function() {
  console.log('Au!');
};

cão.bark();    // Au!
cão.speak();   // O animal fala (herdado de animal)

Assim, os protótipos permitem que os objetos partilhem comportamentos e propriedades, o que é fundamental na programação orientada a objetos em JavaScript.