2
respostas

usando os metodos dentro da classe

class Negociação{

constructor(data, quatidade, valor){
    this._data = data;
    this._quantidade = quatidade;
    this._valor = valor;
}

get quatidade(){return this._quantidade;}
get data(){return this._data;}
get valor(){return this._valor;}
get volume(){return this._valor * this._quantidade;}

}

Boa tarde, no método get volume eu uso duas variáveis supostamente privadas para calcular volume, gostaria de saber se não posso usar os métodos valor e quantidade pra calcular o volume dentro da própria classe? e como eu faco isso?

2 respostas

Desta forma funciona: class Negociacao{

constructor(data, quatidade, valor){
    this._data = new Date(data.getTime());
    this._quantidade = quatidade;
    this._valor = valor;

    Object.freeze(this);
}

getQuantidade(){return this._quantidade;}
get data(){return new Date(this._data.getTime());}
//get valor(){return this._valor;}
getValor(){return this._valor;}
get volume(){return this.getValor() * this.getQuantidade();}

}

sera que usando o metodo get nao e possivel fazer isso?

Fala ai Marcelo, tudo bem? Dentro de um get você pode utilizar outros get sim, sem problemas.

Hoje o seu get para calcular o volume está assim:

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

Como tu disse, ele está lendo os atributos "privados", para que ele utilize os get, você pode remover o _:

get volume() {
    return this.valor * this.quantidade;
}

Dessa forma ele vai ler através dos get de valor e quantidade.

Espero ter ajudado.