Ўзбек тилида ООП да ўзгартирилган методни чақириш (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 синфида ёш сеттерини
соддалаштиринг, асл ота-онанинг методини ишлатган ҳолингизда.