Заштићене методе у ООП у ЈаваСкрипту
Приватне методе се не наслеђују и нису видљиве изван класе. Понекад, међутим, потребне су методе које се наслеђују, али нису видљиве изван класе. Такве методе се називају заштићеним (protected) методама. ЈаваСкрипт, нажалост, не подржава такве методе.
Зато предлажем да увесемо одређени договор који омогућава креирање таквих метода. Називе таквих метода ћемо почињати са доњом цртом. У суштини користимо стари општеприхваћени договор о приватним методама, али ћемо их називати заштићеним као знак да се наслеђују, али их нећемо користити изван класе. Управо тако се оне и примењују по овом древном договору.
Дакле, хајде да напишемо родитељску класу са заштићеном методом:
class User {
setName(name) {
this.name = name;
}
getName() {
return this._capeFirst(this.name);
}
_capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Искористимо ову заштићену методу у изведеној класи:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this._capeFirst(this.surn);
}
}
У следећем коду направите помоћни метод заштићеним:
class User {
setName(name) {
if (this.notEmpty(name)) {
this.name = name;
}
}
getName() {
return this.name;
}
notEmpty(str) {
return str.length > 0;
}
}
class Employee extends User {
setSurn(surn) {
if (this.notEmpty(surn)) {
this.surn = surn;
}
}
getSurn() {
return this.surn;
}
}