1
resposta

Não há a necessidade da extensão “.getTime()"

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()" ?

1 resposta

Boa tarde!

O uso recomendado é sempre trabalhar utilizando o tempo , principalmente se você for trabalhar posteriormente com essas datas. Veja esse exemplo:

var date1 = new Date("June 10, 2003");
var date2 = new Date(date1);

var result = date1 == date2 ? "equal" : "not equal";
console.log(result);

O resultado dirá que não são iguais. Por isso o instrutor usa o .getTime().

Dois objetos de data que representam a mesma data ainda são dois objetos de data diferentes e não serão iguais. Comparar cadeias de datas é uma péssima idéia, porque, por exemplo, "20 de julho de 2014" e "20 de julho de 2014" representam a mesma data, mas têm representações de cadeias diferentes.

Bons estudos!