Privacidade no estilo antigo em OOP em JavaScript

A declaração de propriedades e métodos privados através do símbolo # apareceu no JavaScript há muito pouco tempo. Antes disso, tínhamos que usar um truque especial e engenhoso.

A essência desse truque é estabelecer uma convenção de que os nomes de propriedades e métodos privados devem começar com o caractere sublinhado. Na realidade, esses nomes não serão privados, mas nós combinamos que não os usaremos de fora da classe.

Vamos tentar. Vamos fazer uma propriedade privada nesse estilo:

javascriptclass User {
  constructor(name) {
    this._name = name;
  }
  
  show() {
    return this._name;
  }
}

Vamos criar um objeto da classe:

javascriptlet user = new User('john', 'smit');

Vamos chamar o método que exibe o valor da nossa propriedade:

javascriptconsole.log(user.show());

A tentativa de acessar a propriedade de fora da classe não resultará em erro:

javascriptconsole.log(user._name); // nenhum erro
Задание 1

No código a seguir, torne as propriedades privadas:

javascriptclass Employee {
  constructor(name, salary) {
    this._name = name;
    this._salary = salary;
  }
  
  getName() {
    return this._name;
  }
  getSalary() {
    return this._salary;
  }
}
Задание 2

No código a seguir, torne o método auxiliar privado:

javascriptclass Employee {
  constructor(name, salary) {
    this.name = name;
    this.salary = salary;
  }
  
  getSalary() {
    return this._addSign(this.salary);
  }
  
  _addSign(num) {
    return num + '
;
  }
}