Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

Encapsulamento e Object.freeze()

Olá. Minha dúvida é sobre o encapsulamento. Nas regras de negócio do projeto do curso está definido que uma negociação é imutável, ou seja, utilizará apenas getters. O Object.freeze() me pareceu congelar o objeto como um todo, e não de forma inteligente apenas nas "propriedades privadas". Contudo em um outro projeto qualquer, no qual é permitido alterar utilizando setters mas também evitando ser acessado externamente, posso utilizar o Object.freeze()? Há outra forma de fazê-lo? Ou terei que correr o risco de ser modificado?

1 resposta
solução!

Alteração no estado + imutabilidade = criação de novos objetos a cada alteração :). Você pode usar o Object.assign para sempre ir criando novas versões de um objeto baseado em um estado anterior.