Privaatsed meetodid pärimisel OOP-s JavaScriptis
Privaatseid meetodeid ei pärita. See on tehtud spetsiaalselt selleks, et mitte rikkuda enkapsulatsiooni. Vaatame näite abil. Olgu meil järgmine vanemaklass koos privaatse meetodiga:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Olgu vanemaklassist pärib järgmine klass:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Olgu järglane soovib kasutada vanema privaatset meetodit. JavaScript ei luba seda ja annab vea:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // annab vea
}
}
Proovige klassis Employee
kasutada vanema privaatset meetodit.