Olá. Eu não compreendi muito bem o uso da programação defensiva no código foi criada um instância dentro da instância para não alterar a data porém ao final da linha solicitei a alteração funcionou ( oi seja, executou a alteração da data )
usando no construtor o this._daa = new Date(data.getTime()); , não teria que manter a data orginal mesmo comandando por fora uma alteração na data? seguem as linhas de comando Obrigado
class Negociacao{
constructor (data, quantidade, valor){
this._data = new Date(data.getTime()); // criando uma nova instancia a partir do tempo de uma data
this._quantidade = quantidade;
this._valor = valor;
Object.freeze(this); // congela a instância do objeto
}
get volume(){
return this._quantidade * this._valor;
}
get data(){
return this._data;
}
get quantidade() {
return this._quantidade;
}
get valor(){
return this._valor;
}
}
var negociacao = new Negociacao(new Date(), 1, 100);
negociacao.data.setDate(negociacao.data.getDate()+2);
console.log(negociacao.data);