Privaatsed meetodid OOP-s JavaScriptis
Mitte ainult omadused, vaid ka meetodid võivad olla privaatsed. Tavaliselt tehakse abimeetodid privaatseteks, et need kogemata väljast klassi kutsuda ei saaks.
Vaatame näidet. Olgu meil järgmine klass:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Teeme selles klassis privaatse meetodi, mis võtab parameetrina stringi ja teeb selle esimese sümboli suureks:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Kasutame oma abimeetodit teise meetodi sees:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Kontrollime. Loome oma klassi objekti:
let user = new User('john');
Kutsume välja avaliku meetodi, mis kasutab abimeetodit:
console.log(user.show());
Tehke järgmises koodis abimeetod privaatseks:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '€';
}
}