Cada objeto JavaScript tem um link oculto para outro objeto chamado seu prototype. Quando você acessa uma propriedade, JS procura no objeto em si, depois percorre esta cadeia de protótipos até encontrar a propriedade ou chegar a null. Isso é delegação, não cópia.
animal = {
() { ; },
};
dog = .(animal);
dog. = ;
dog.();
.(dog) === animal;
dog.();
dog.();
