3
respostas

Pq é necessário usar o getTime?

Qual a necessidade de adicionar o getTime junto ao this._data na variavel data?

passando apenas o this._data eu obtive a mesma proteção, tem algum motivo especial para isso?

3 respostas

Oi, Sung Ju! Tudo bom?

Quando tentamos acessar a propriedade _data fazemos isso com o get data() já que a propriedade é privada e não pode ser acessada diretamente. Então, como uma forma de proteger nossa propriedade criamos uma cópia idêntica dela mas com uma nova referência, sem ser uma referência para _data. Ao fazermos qualquer modificação na data, na verdade estaremos alterando a cópia dela que criamos e não a data que estamos guardando.

O uso do this._data.getTime() apenas ajuda na criação dessa nossa cópia, gerando uma data idêntica a que estamos guardando só que com uma nova referência. Então qualquer modificação feita com o set _data() não vai alterar a nossa propriedade _data, e sim a cópia dela.

Espero ter ajudado!

Opa obrigado pela resposta Neilton, como o getTime() ajuda na criação da copia? ela não é apenas uma maneira de converter a data? o encapsulamento não é feito quando instanciamos o novo new Date(), a minha dúvida é especificamente sobre o getTime(), não entendi a diferença de colocar

new Date(this.data.getTime()) quando apenas o newDate(this.data) funciona da mesma maneira.

Neste caso é uma boa prática utilizar o getTime() pois, ele garante que o valor passado para o new Date() seja um valor numérico e é bem utilizado para esses casos de duplicação de datas.