Private metoder i OOP i JavaScript
Ikke bare egenskaper kan være private, men også metoder. Vanligvis blir hjelpemetoder private for å forhindre at de ved et uhell blir kalt utenfra klassen.
La oss se på et eksempel. Anta at vi har følgende klasse:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
La oss lage en privat metode i denne klassen, som tar en streng som parameter og gjør den første bokstaven stor:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
La oss bruke vår hjelpemetode innenfor en annen metode:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
La oss teste. La oss opprette et objekt av klassen vår:
let user = new User('john');
La oss kalle den offentlige metoden som bruker hjelpemetoden:
console.log(user.show());
I følgende kode, gjør hjelpemetoden privat:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + ' kr';
}
}