Privát metódusok az OOP-ben JavaScriptben
Nem csak tulajdonságok lehetnek privátak, hanem metódusok is. Általában segédmetódusokat tesznek priváttá, hogy véletlenül ne lehessen kívülről meghívni őket az osztályon kívül.
Nézzünk egy példát. Tegyük fel, hogy van a következő osztályunk:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Tegyünk ebbe az osztályba egy privát metódust, ami paraméterként fogad egy sztringet és nagybetűssé teszi az első karakterét:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Használjuk fel segédmetódusunkat egy másik metóduson belül:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Teszteljük. Hozzunk létre egy objektumot az osztályunkból:
let user = new User('john');
Hívjuk meg a publikus metódust, ami a segédmetódust használja:
console.log(user.show());
A következő kódban tegye priváttá a segédmetódust:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}