Métodos privados en POO en JavaScript
No solo las propiedades pueden ser privadas, sino también los métodos. Normalmente se hacen privados los métodos auxiliares, para que no puedan ser llamados accidentalmente desde fuera de la clase.
Veamos un ejemplo. Supongamos que tenemos la siguiente clase:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Hagamos en esta clase un método privado, que tomará una cadena como parámetro y pondrá en mayúscula su primer carácter:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Utilicemos nuestro método auxiliar dentro de otro método:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Comprobemos. Creemos un objeto de nuestra clase:
let user = new User('john');
Llamemos al método público que utiliza el auxiliar:
console.log(user.show());
En el siguiente código, haga el método auxiliar privado:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}