Privátnost ve starém stylu v OOP v JavaScriptu

Definice privátních vlastností a metod pomocí symbolu # se v JavaScriptu objevila teprve nedávno. Předtím jsme museli používat speciální trik.

Podstatou tohoto triku je dohoda, že názvy privátních vlastností a metod musí začínat symbolem podtržítka. Ve skutečnosti tyto názvy nebudou privátní, ale dohodneme se, že je nebudeme používat zvenčí třídy.

Zkusme to. Vytvořme privátní vlastnost v tomto stylu:

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

Vytvořme objekt třídy:

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

Zavolejme metodu, která zobrazí hodnotu naší vlastnosti:

javascriptconsole.log(user.show());

Pokus o přístup k vlastnosti zvenčí třídy nepovede k chybě:

javascriptconsole.log(user._name); // žádná chyba
Задание 1

V následujícím kódu udělejte vlastnosti privátními:

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

V následujícím kódu udělejte pomocnou metodu privátní:

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