Приватные методы в ООП в JavaScript
Приватными могут быть не только свойства, но и методы. Обычно приватными делают вспомогательные методы, чтобы они случайно не могли быть вызваны извне класса.
Давайте посмотрим на примере. Пусть у нас есть следующий класс:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Сделаем в этом классе приватный метод, который параметром будет принимать строку и делать заглавным ее первый символ:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Воспользуемся нашим вспомогательным методом внутри другого метода:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Давайте проверим. Создадим объект нашего класса:
let user = new User('john');
Вызовем публичный метод, использующий вспомогательный:
console.log(user.show());
В следующем коде сделайте вспомогательный метод приватным:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '$';
}
}