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 :
class 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 :
class 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 :
class 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 :
let user = new User('john');
Appelons la méthode publique utilisant la méthode auxiliaire :
console.log(user.show());
Dans le code suivant, rendez la méthode auxiliaire privée :
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '€';
}
}