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:
class 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:
class 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:
class 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:
let user = new User('john');
Chiamiamo il metodo pubblico, che utilizza il metodo di supporto:
console.log(user.show());
Nel seguente codice, rendi il metodo di supporto privato:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '€';
}
}