Тағйир додани усулҳои волидайн дар ООП дар JavaScript
Синфи фарзанд метавонад усули волидайнро бо сохтани усули ҳамон ном тағйир диҳад. Биёед ба мисол нигарем. Бигзор мо ин синфи волидайнро дошта бошем:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Биёед дар синфи фарзанд усули ҳамон ном созем:
class Student extends User {
setName(name) {
}
}
Одатан, тағйир додани усулҳои волидайн барои он лозим аст, ки рафтори ин усулро тағйир диҳем ё илова кунем. Биёед дар ҳолати мо тафтиши дарозии номро илова кунем:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('хатои номи донишҷӯ');
}
}
}
Биёед боварӣ ҳосил кунем, ки усули тағйирёфта даъват мешавад. Аввалан объекти синфи фарзандро созем:
let student = new Student;
Ҳоло усули худро даъват мекунем, ба он арзиши дурустро гузаронем:
student.setName('john');
Ва ҳоло усулро даъват мекунем, ба он арзиши нодурустро мегузаронем. Дар натиҷа дар консоли хатогӣ партофташударо мебинем:
student.setName(''); // хатогӣ
Дар синфи User геттер ва сеттери синну сол созед.
Дар синфи Employee сеттери синну солро тағйир диҳед ва дар он
тафтиши онро, ки синну сол аз
18 то 65 сол бошад, созед.