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?
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?
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.