Observando o código abaixo fico me questionando
get data() {
return new Date(this._data.getTime());
}
var n1 = new Negociacao (new Date(), 100, 5);
n1.data.setDate(23);
console.log(n1.data);
(1) Entendo que o this._data está protegido por meio da criação de um novo objeto.
(2) Eu estaria editando a cópia (novo Objeto) caso usasse o setDate().
(3) Mas se a afirmação (2) é verdadeira a data do return estaria incorreta considerando que o return é um novo objeto que recebe não mais this._data.getTime() como parâmetro mas, um novo argumento que foi inserido após o setDate().
Porque o return mostra a data certa se eu estaria modificando esta cópia (que é o que devia ser retornado)?