Prywatne metody w OOP w JavaScript
Prywatne mogą być nie tylko właściwości, ale i metody. Zwykle prywatnymi robi się metody pomocnicze, aby przypadkowo nie mogły być wywołane z zewnątrz klasy.
Spójrzmy na przykład. Załóżmy, że mamy następującą klasę:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Zróbmy w tej klasie metodę prywatną, która parametrem będzie przyjmować ciąg znaków i robić wielką literę jej pierwszego znaku:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Skorzystajmy z naszej metody pomocniczej wewnątrz innej metody:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Sprawdźmy. Stwórzmy obiekt naszej klasy:
let user = new User('john');
Wywołajmy metodę publiczną, używającą metody pomocniczej:
console.log(user.show());
W następującym kodzie zrób metodę pomocniczą prywatną:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + 'zł';
}
}