Metode private în OOP în JavaScript
Nu doar proprietățile pot fi private, ci și metodele. De obicei, metodele auxiliare sunt făcute private pentru a nu putea fi apelate accidental din afara clasei.
Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Să facem în această clasă o metodă privată, care va primi ca parametru un șir de caractere și va face majusculă primul său caracter:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Să folosim metoda noastră auxiliară în interiorul unei alte metode:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Să verificăm. Să creăm un obiect al clasei noastre:
let user = new User('john');
Să apelăm metoda publică, care folosește metoda auxiliară:
console.log(user.show());
În următorul cod, faceți metoda auxiliară privată:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}