Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aqui

class Negociacao {

    constructor(data, quantidade, valor) {

        this._data = new Date(data.getTime()); 
        this._quantidade = quantidade;
        this._valor = valor;
        Object.freeze(this);
    }

    get volume() {
        return this._quantidade * this._valor;
    }

    get data() {
        return new Date(this._data.getTime());
    }

    get quantidade() {
        return this._quantidade;
    }

    get valor() {
        return this._valor;
    }
}

eu não entendi o por que que tem que fazer a mesma coisa no método e no constructor eu coloquei aqui só no constructor e já funciona

1 resposta
solução!

Oi Thiago,

Precisamos fazer no método também pois senão ao chamamos o get data() podemos pegar a referência do objeto Date retornado e modificá-lo também.

Por exemplo:

Date data = negociacao.data();
data.setTime(outroValor);

Abraço!

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