Private metoder ved arv i OOP i JavaScript
Private metoder arves ikke. Dette er gjort med vilje for ikke at overtræde inkapsling. Lad os se på et eksempel. Lad os sige, at vi har følgende forældre klasse med en privat metode:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Lad os sige, at følgende klasse arver fra forældreklassen:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Lad os sige, at afkommet ønsker at bruge forælderens private metode. JavaScript tillader dette ikke og vil give en fejl:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // vil give fejl
}
}
Prøv i klassen Employee
at bruge forælderens private metode.