Privata metoder i OOP i JavaScript
Det kan vara inte bara egenskaper som är privata, utan även metoder. Vanligtvis görs hjälpmetoder privata så att de inte av misstag kan anropas utifrån klassen.
Låt oss titta på ett exempel. Antag att vi har följande klass:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Låt oss skapa en privat metod i denna klass, som tar en sträng som parameter och gör dess första tecken till en stor bokstav:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Låt oss använda vår hjälpmetod inuti en annan metod:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Låt oss testa. Skapa ett objekt av vår klass:
let user = new User('john');
Anropa den publika metoden som använder hjälpmetoden:
console.log(user.show());
Gör hjälpmetoden privat i följande kod:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}