Mesmo criando uma nova data dentro do constructor ainda é possível alterar a data referenciando _data. Por mais que seja defensiva ainda há brechas. Tem algum modo de deixar mais seguro?
let n1 = new Negociacao(new Date(), 5, 700.5);
console.log(n1.data);
n1._data.setDate(11);
console.log(n1.data);
Constructor da classe
constructor(data, quantidade, valor) {
this._data = new Date(data.getTime());
this._quantidade = quantidade;
this._valor = valor;
Object.freeze(this);
}