get data() {
return new Date(this._data.getDate());
}
Não entendi pq eu preciso criar uma outra instancia de Date pra chamar o getDate do _data que ja passei no construtor
get data() {
return new Date(this._data.getDate());
}
Não entendi pq eu preciso criar uma outra instancia de Date pra chamar o getDate do _data que ja passei no construtor
É justamente esse ponto que é a questão crucial dessa parte. Se você retornar a mesma instância, quem acessar a instânciafora da sua classe conseguirá alterá-la. Em suma, você acha que esta tornando a propriedade privada, mas não.
Quando você retorna uma novo objeto Date baseado no Date original, se qualquer alterar esse Date fora da classe, não alterará o date encapsulado por ela. Isso se chama programação defensiva. Problemas como esse acontecem em linguagem que suportam passagem de parâmetros por referência, um conceito da programação.
Você chegou a fazer um teste? Tentou alterar a data da negociação? Se você não retornar uma nova data, você conseguirá mudar e não é isso que queremos, porque uma vez a negociação feita, ela não pode ser alterada.