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

Metodo volume.

Em vez de criar o metodo obtemVolume eu havia feito da seguinte forma:

class Negociacao {
    constructor(data, quantidade, valor) {
        this.data = data;
        this.quantidade = quantidade;
        this.valor = valor;
        this.volume = quantidade * valor;
    }

Embora funcione, eu acredito que estaria errado por estar misturando dado com comportamento. Certo? Seria apenas uma questão de má prática ou pode gerar outros problemas no meu códido?

Obrigado.

2 respostas
solução!

Fala Ricardo, isso é apenas uma má prática, pois você terá um atributo que depende de outro, o legal que você pode fazer é criar um get para ele:

class Negociacao {

    constructor(data, quantidade, valor) {
        this.data = data;
        this.quantidade = quantidade;
        this.valor = valor;
    }

    get volume() {
        return quantidade * valor;
    }

}

Quem for chamá-lo nem sabe que é um getter, parece que faz parte da própria classe em forma de atributo:

const negociacao = new Negociacao(new Date(), 10, 5);
console.log(negociacao.volume);

Espero ter ajudado.

Sim. Queria reforçar a questão do entendimento da prática. Obrigado. Abs