Metode private în OOP în JavaScript

Nu doar proprietățile pot fi private, ci și metodele. De obicei, metodele auxiliare sunt făcute private pentru a nu putea fi apelate accidental din afara clasei.

Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă:

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

Să facem în această clasă o metodă privată, care va primi ca parametru un șir de caractere și va face majusculă primul său caracter:

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

Să folosim metoda noastră auxiliară în interiorul unei alte metode:

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

Să verificăm. Să creăm un obiect al clasei noastre:

javascriptlet user = new User('john');

Să apelăm metoda publică, care folosește metoda auxiliară:

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

În următorul cod, faceți metoda auxiliară privată:

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