Metodi privati in OOP in JavaScript

Non solo le proprietà possono essere private, ma anche i metodi. Di solito i metodi privati sono quelli di supporto, per evitare che possano essere chiamati accidentalmente dall'esterno della classe.

Vediamo un esempio. Supponiamo di avere la seguente classe:

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

Creiamo in questa classe un metodo privato, che accetterà una stringa come parametro e renderà maiuscolo il suo primo carattere:

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

Utilizziamo il nostro metodo di supporto all'interno di un altro metodo:

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

Verifichiamo. Creiamo un oggetto della nostra classe:

javascriptlet user = new User('john');

Chiamiamo il metodo pubblico, che utilizza il metodo di supporto:

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

Nel seguente codice, rendi il metodo di supporto privato:

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