Private metoder i OOP i JavaScript
Private kan ikke kun være egenskaber, men også metoder. Normalt gøres hjælpemetoder private for at forhindre, at de ved et uheld bliver kaldt udefra klassen.
Lad os se på et eksempel. Antag, at vi har følgende klasse:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Lad os lave en privat metode i denne klasse, som tager en streng som parameter og gør dens første bogstav stort:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Lad os bruge vores hjælpemetode inde i en anden metode:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Lad os teste. Lad os oprette et objekt af vores klasse:
let user = new User('john');
Lad os kalde den offentlige metode, der bruger hjælpemetoden:
console.log(user.show());
Gør hjælpemetoden privat i følgende kode:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + ' kr.';
}
}