Propriedades privadas em OOP em JavaScript
As propriedades de um objeto que podem ser lidas e gravadas de fora são chamadas de públicas. Também existem propriedades privadas, que estarão acessíveis apenas dentro da classe.
Os nomes das propriedades privadas devem
começar com o símbolo #.
Além disso, essas propriedades precisam obrigatoriamente
ser declaradas no início do código da classe.
Vamos fazer isso:
class User {
#name;
}
Agora vamos gravar dados em nossa propriedade. Isso pode ser feito, por exemplo, no construtor da classe:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Vamos agora criar um método que retornará o valor da nossa propriedade:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Vamos criar um objeto da classe, passando o nome do usuário como parâmetro:
let user = new User('john');
A tentativa de acessar diretamente nossa propriedade fora da classe resultará em um erro:
console.log(user.#name); // erro
E chamar nosso método permitirá ler essa propriedade:
console.log(user.show()); // exibirá 'john'
Na classe Employee, crie
três propriedades privadas: nome, salário
e idade.
Passe os valores dessas propriedades como parâmetro do construtor.
Crie um método que exibirá os dados do funcionário.