Prototype chain
Em código real, você frequentemente precisa criar objetos que compartilham comportamento sem duplicar código. A cadeia de protótipos (prototype chain) é o mecanismo que o JavaScript usa para isso: se uma propriedade não existe no objeto, ele busca no protótipo. Usar Object.create() permite estabelecer essa herança de forma explícita e controlada, sem precisar de classes ou construtores — algo comum em bibliotecas e frameworks que manipulam objetos diretamente.
O PROBLEMA
Crie objeto animal, crie cachorro com Object.create(animal) e sobrescreva método.
EXEMPLO
const cachorro = Object.create(animal);
cachorro.falar = function() { return "Au au!" };SOBRE O CONCEITO
O método Object.create(animal) cria um novo objeto cujo protótipo é animal. Isso significa que o novo objeto herda todas as propriedades de animal. Se você definir uma propriedade com o mesmo nome no novo objeto, ela sobrescreve a herdada naquele objeto específico, sem alterar o protótipo. O erro comum é confundir __proto__ (uma propriedade não padrão que referencia o protótipo do objeto) com prototype (uma propriedade que existe apenas em funções construtoras, não em objetos comuns). Ao usar Object.getPrototypeOf(cachorro), você obtém o protótipo correto de forma segura. No exercício, você deve criar o objeto animal com um método, depois criar cachorro com Object.create(animal) e sobrescrever esse método. Lembre-se: cachorro.falar primeiro procura no próprio objeto; se não achar, vai para animal. Ao definir cachorro.falar, você coloca a função diretamente em cachorro, interrompendo a busca no protótipo para aquela propriedade.
RESOLUÇÃO