OOP da JavaScript da ota-ona metodini chaqirish
Metodni qayta belgilashda, meros oluvchi
ota-ona tomonidan qayta belgilangan metodga
kirish huquqini yo'qotadi. Biroq, unga
kirish hali ham mumkin. Buning uchun
super kalit so'zi yordamida amalga oshiriladi,
bu ota-ona sinfini ko'rsatadi.
Keling, ota-ona metodiga kirish zarur bo'ladigan misolni ko'rib chiqaylik. Faraz qilaylik, bizda quyidagi ota-ona sinf mavjud:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Faraz qilaylik, biz meros oluvchi sinfda ota-ona metodini qayta belgiladik:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Shuni payqash mumkinki, qayta belgilangan metodda shart bajarilganda, aslida ota-ona metodining kodi bajariladi. Bu keraksiz kod takrorlashiga olib keladi.
Agar ota-ona metodini chaqirsak, bundan xalos bo'lish mumkin. Buni amalga oshiramiz:
class Student extends User {
setName(name) {
if (name.length > 0) {
super.setName(name); // ota-ona metodi
} else {
throw new Error('student name error');
}
}
}
Quyidagi kod berilgan:
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 sinfida yoshni o'rnatish metodini
soddalashtiring, asl ota-ona metodidan foydalangan holda.