JavaScript ООП-де қайта анықталған әдісті шақыру
Қайта анықтау кезінде туынды клас
базалық кластың қайта анықталған әдісіне
қол жеткізе алмайды. Дегенмен, оған
қол жеткізу әлі де мүмкін. Бұл
super кілт сөзі арқылы жасалады,
ол базалық класқа сілтеме жасайды.
Базалық кластың әдісіне қол жеткізу қажет болатын мысалды қарастырайық. Бізде келесі базалық клас бар делік:
javascriptclass User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Біз туынды класта базалық кластың әдісін қайта анықтадық делік:
javascriptclass Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Қайта анықталған әдісте шарт орындалған кезде іс жүзінде базалық кластың әдісінің коды орындалатынын байқауға болады. Бұл қажетсіз код көшірмесіне әкеледі.
Бұл базалық кластың әдісін шақыру арқылы жойылуы мүмкін. Мұны жасайық:
javascriptclass Student extends User {
setName(name) {
if (name.length > 0) {
super.setName(name); // базалық кластың әдісі
} else {
throw new Error('student name error');
}
}
}
Задание 1
Берілген код:
javascriptclass 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 класында
жас сеттерін жеңілдетіңіз, базалық кластың
түпнұсқа әдісін пайдаланып.