Olá, boa noite. Eu estava terminando o capitulo "Especificando uma Negociação" e enquanto eu estava tentando entender o retorno de uma nova instância que o professor havia explicado, eu me deparei com a seguinte situação:
No código abaixo, quando eu tirei o new Date(data.getTime());
da propriedade this._data
, ele funcionou da mesma forma, sem fazer a alteração na data passada.
class Negociacao {
constructor(data, quantidade, valor) {
this._data = new Date(data.getTime()); // criando uma nova instância a partir do tempo de uma data
this._quantidade = quantidade;
this._valor = valor;
Object.freeze(this);
}
get volume() {
return this._quantidade * this._valor;
}
get data() {
return new Date(this._data.getTime());
}
get quantidade() {
return this._quantidade;
}
get valor() {
return this._valor;
}
}
var negociacao = new Negociacao(new Date(), 1, 100);
console.log(negociacao.data);
Queria saber se realmente é realmente necessário o new Date(data.getTime())
e o porque, caso for. Obrigado!