Oi Erik, tudo bem?
No contexto apresentado, o objetivo é evitar a mutabilidade da propriedade _data
da classe Negociacao
.
O operador spread ({... _data}
) cria uma cópia superficial do objeto _data
, ou seja, ele copia apenas as propriedades do objeto, mas não as referências dos valores. Portanto, ao utilizar o operador spread, você está criando um novo objeto com as mesmas propriedades do _data
, mas sem a referência original.
No entanto, no caso específico apresentado na aula, o objetivo é retornar uma nova instância de Date
, que seja igual à data armazenada em _data
, mas sem a referência original. Isso é importante para garantir a imutabilidade da data e evitar que modificações sejam feitas diretamente na propriedade _data
.
Ao criar uma nova instância de Date
utilizando o valor retornado por this._data.getTime()
, você está criando uma nova referência para a data, garantindo que qualquer modificação feita nessa nova instância não afetará a data original armazenada em _data
.
Portanto, no contexto apresentado, a criação de uma nova data utilizando o construtor new Date(this._data.getTime())
é necessária para garantir a imutabilidade da propriedade _data
e evitar modificações indesejadas.
Muito obrigada pela sua contribuição!
Um abraço e bons estudos.