Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

data.getTime() é sempre a data atual?

this._data = new Date(data.getTime()); // caso passem uma data errada, isso corrige para a data atual.

Digamos que hoje é dia 20, se eu passar n1._data.setDate(10), lá na classe Negociacao, new Date(data.getTime()) passaria a data que se refere ao dia 10 não é mesmo?, porque data.getTime() é o valor do dia 10. Porque que este código this._data = new Date(data.getTime()); , está definindo como dia atual? É porque getTime() sempre será o dia atual?

2 respostas
solução!

Boa tarde!

Vamos separar em pedaços seu questionamento:

var data = new Date(); // --> data atual

data.setDate(10); //--> ano, mês, horário mantido, mas dia 10

data.getTime(); //->Retorna o valor de uma data em número. Ex: 1581355547384

var data2 = new Date(data.getTime()) //--> seria a data do dia 10.

então, quanto a sua pergunta: "se eu passar n1._data.setDate(10), lá na classe Negociacao, new Date(data.getTime()) passaria a data que se refere ao dia 10 não é mesmo?" Correto, vale a data como se fosse dia 10.

Seguindo: "porque data.getTime() é o valor do dia 10." data é dia 10. O getTime() retorna um valor numérico referente ao dia 10.

Seguindo: "Porque que este código this._data = new Date(data.getTime()); , está definindo como dia atual? É porque getTime() sempre será o dia atual?" No momento da execução do código, a hora que você insere uma negociação, ele pega a data atual, passando um new Date(); No exercício em questão, o que o instrutor fez foi um bloqueio de manipulação do valor, de modo que seja impedido que haja alteração no valor da data da negociação. Passando o valor como getTime(), se evita problemas de manipulação de data.

No exercício, get data() { return new Date(this._data.getTime()); }

A ideia aqui é retornar um novo objeto data, que não seja a referencia de memória da nossa negociação. Se retornar direto o this._data, é uma referência que pode ser manipulada. Quando se usa o new , se cria uma nova referencia de memória, que evita a manipulação.

Obrigado pelos esclarecimentos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software