Pelo que percebi, o uso do new é poderoso em si mesmo para trazer o resultado desejado. Em nenhum desses casos é necessário o uso da expressão “.getTime()". O nosso código funciona perfeitamente se colocarmos, no get::
get data() {
return new Date(this._data);
}
E, no construtor:
construtor(data, quantidade, valor) {
this._data = new Date(data);
this._quantidade = quantidade;
this._valor = valor;
Object.freeze(this);
}
Faz exatamente o mesmo efeito de proteção. Testei várias vezes e o efeito é o mesmo. Então, não é mais lógico e enxuto usarmos apenas a expressão, sem a expressão “.getTime()" ?