No material extra tem um caso de uso de Object.create()
que me deixou na dúvida.
"O método Object.create()
cria um novo objeto utilizando como protótipo o objeto passado via parâmetro."
Refazendo o exemplo o console.log
me retornou o segundo objeto contendo apenas a propriedade nome (que inseri posteriormente para mudar, tentando sem a linha para renomear ele me retornou um objeto vazio).
Queria saber se esse é o comportamento esperado (e se é, qual é a serventia prática) ou se fiz algo errado, pois imaginei que o trecho const depoisDeMoria = Object.create(antesDeMoria);
fosse clonar o primeiro objeto para podermos trabalhar separadamente depois.
Muito obrigado de antemão.
Segue o código:
const antesDeMoria = {
nome: 'Gandalf, o Cinzento',
classe: 'mago',
nivel: "20"
};
const depoisDeMoria = Object.create(antesDeMoria);
depoisDeMoria.nome = 'Gandalf, o Branco';
console.log(antesDeMoria); //~{ nome: 'Gandalf, o Cinzento', classe: 'mago', nivel: '20' }
console.log(depoisDeMoria); //~{ nome: 'Gandalf, o Branco' }