JavaScript-dä OOP-de goragly usullary
Şahsy usullary miras alynmaýar we klassdan daşarda görünmeýär. Emma käwagt, miras alynýan, ýöne klassdan daşarda görünmeýän usullar gerek bolar. Beýle usullara goragly (protected) usullar diýilýär. JavaScript, gynansagam, beýle usullary goldamaýar.
Şonuň üçin men beýle usullary döretmäge mümkinçilik berýän bir şertnamany hasyl etmegi hödürleýärin. Beýle usullaryň atlaryny aşak sızgy bilen başlarys. Aslynda biz öňki kabul edilen ýapyk usullar baradaky şertnamany ulanarys. Diňe şeýle usullary miras alynýandygyny görkezmek üçin goragly diýip atlandyrarys, ýöne olary daşardan ulanarys. Emma, aslynda, köne şertnama boýunça hem şeýle ulanylýar.
Şeýlelik bilen, goragly usuly bolan ata-klas ýazalyň:
class User {
setName(name) {
this.name = name;
}
getName() {
return this._capeFirst(this.name);
}
_capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Bu goragly usuldan weli-klasda peýdalanyň:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this._capeFirst(this.surn);
}
}
Aşakdaky kodda kömekçi usuly goragly ediň:
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;
}
}