Վերագրված մեթոդի կանչը OOP-ում JavaScript-ում
Վերագրելիս ժառանգը կորցնում է
մուտքը ծնողի վերագրված մեթոդին:
Սակայն, դրան հասնելը հնարավոր է:
Դա արվում է օգտագործելով super
բանալի բառը, որը ցույց է տալիս ծնողական
դասը:
Դիտարկենք մի օրինակ, երբ մեզ կարող է անհրաժեշտ լինել մուտք ծնողական մեթոդին: Ենթադրենք ունենք հետևյալ ծնողական դասը:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Ենթադրենք՝ ժառանգ դասում մենք վերագրեցինք ծնողի մեթոդը:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Նկատելի է, որ վերագրված մեթոդում պայմանի կատարման դեպքում փաստորեն կատարվում է ծնողական մեթոդի կոդը: Ստացվում է կոդի ավելորդ կրկնօրինակ:
Դրանից կարելի է ազատվել, եթե կանչել ծնողի մեթոդը: Եկեք անենք դա:
class Student extends User {
setName(name) {
if (name.length > 0) {
super.setName(name); // ծնողի մեթոդը
} else {
throw new Error('student name error');
}
}
}
Տրված է հետևյալ կոդը:
class User {
setAge(age) {
if (age >= 0) {
this.age = age;
} else {
throw new Error('need age more 0');
}
}
}
class Employee {
setAge(age) {
if (age <= 120) {
if (age >= 0) {
this.age = age;
} else {
throw new Error('need age more 0');
}
} else {
throw new Error('need age less 120');
}
}
}
Employee դասում ուղղեք
տարիքի սետթերը՝ օգտագործելով
ծնողի օրիգինալ մեթոդը: