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:

javascriptclass User {
  #name;
}

Agora vamos gravar dados em nossa propriedade. Isso pode ser feito, por exemplo, no construtor da classe:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
}

Vamos agora criar um método que retornará o valor da nossa propriedade:

javascriptclass 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:

javascriptlet user = new User('john');

A tentativa de acessar diretamente nossa propriedade fora da classe resultará em um erro:

javascriptconsole.log(user.#name); // erro

E chamar nosso método permitirá ler essa propriedade:

javascriptconsole.log(user.show()); // exibirá 'john'
Задание 1

Na classe Employee, crie três propriedades privadas: nome, salário e idade.

Задание 2

Passe os valores dessas propriedades como parâmetro do construtor.

Задание 3

Crie um método que exibirá os dados do funcionário.