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:
javascriptclass 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:
javascriptclass 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:
javascriptclass 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:
javascriptlet user = new User('john');
Anropa den publika metoden som använder hjälpmetoden:
javascriptconsole.log(user.show());
Задание 1
Gör hjälpmetoden privat i följande kod:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}