Boas pessoal.
A aula está um pouco defasada, como vocês viram, mas já é possível, sim, utilizar atributos privados e protegidos no javascript. Desde o ES2019 eu creio.
Acompanhei a aula e implementei os recursos apenas para distribuir o conhecimento.
lembrando que os setters são separados e os getters tb (na hora de chamar não precisa dos parenteses da função)
class Negociacao {
#data;
#quantidade;
#valor;
constructor(data, quantidade, valor) {
this.#data = data;
this.#quantidade = quantidade;
this.#valor = valor;
}
//Setters Opcionais - No caso da aula, não será utilizado | Somente para conhecer.
set data(data) { this.#data = data; }
set quantidade(quantidade) { this.#quantidade = quantidade; }
set valor(valor) { this.#valor = valor; }
get negociacao() {
return {
data: this.#data,
quantidade: this.#quantidade,
valor: this.#valor,
volume: this.#quantidade * this.#valor
};
}
}
O atributo get não é invocado, nem os parênteses. Você pode imprimir no console desta forma:
console.log(n1.negociacao)
Um abraço !