Méthodes privées en POO en JavaScript

Non seulement les propriétés peuvent être privées, mais aussi les méthodes. Généralement, on rend privées les méthodes auxiliaires afin qu'elles ne puissent pas être appelées accidentellement de l'extérieur de la classe.

Regardons un exemple. Supposons que nous ayons la classe suivante :

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

Créons dans cette classe une méthode privée, qui prendra une chaîne de caractères en paramètre et mettra en majuscule son premier caractère :

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

Utilisons notre méthode auxiliaire à l'intérieur d'une autre méthode :

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

Vérifions. Créons un objet de notre classe :

javascriptlet user = new User('john');

Appelons la méthode publique utilisant la méthode auxiliaire :

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

Dans le code suivant, rendez la méthode auxiliaire privée :

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