Privátní metody v OOP v JavaScriptu

Privátní nemusí být pouze vlastnosti, ale i metody. Obvykle se privátními dělají pomocné metody, aby nemohly být náhodně volány zvenčí třídy.

Podívejme se na příklad. Předpokládejme, že máme následující třídu:

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

Vytvořme v této třídě privátní metodu, která bude přijímat řetězec jako parametr a převede jeho první znak na velké písmeno:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Použijme naši pomocnou metodu uvnitř jiné metody:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#cape(this.#name);
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Pojďme to ověřit. Vytvořme objekt naší třídy:

javascriptlet user = new User('john');

Zavolejme veřejnou metodu, která využívá pomocnou metodu:

javascriptconsole.log(user.show());
Задание 1

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č';
  }
}