Privata metoder vid arv i OOP i JavaScript
Privata metoder ärvs inte. Detta är gjort med flit för att inte bryta mot inkapsling. Låt oss titta på ett exempel. Låt oss säga att vi har följande föräldraklass med en privat metod:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Låt följande klass ärva från föräldraklassen:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Låt barnet vill använda förälderns privata metod. JavaScript tillåter inte detta och kommer att ge ett fel:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // kommer att ge fel
}
}
Försök i klassen Employee
att använda förälderns
privata metod.