Oproep van 'n oorheersde metode in OOP in JavaScript
Met oorheersing verloor die nakoming
toegang tot die oorheersde metode
van die ouer. Tog kan dit steeds
verkry word. Dit word gedoen
met die sleutelwoord super,
wat na die ouerklas verwys.
Laat ons kyk na 'n voorbeeld wanneer ons toegang tot die ouermetode nodig mag hê. Gestel ons het die volgende ouerklas:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Gestel ons het die metode van die ouer in die kindklas oorheers:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Daar kan opgelet word dat in die oorheersde metode, wanneer die voorwaarde nagekom word, in werklikheid die kode van die ouermetode uitgevoer word. Dit lei tot onnodige kode duplisering.
Dit kan verwyder word deur die metode van die ouer te roep. Laat ons dit doen:
class Student extends User {
setName(name) {
if (name.length > 0) {
super.setName(name); // metode van ouer
} else {
throw new Error('student name error');
}
}
}
Gegee die volgende kode:
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');
}
}
}
In die klas Employee, regstel en
vereenvoudig die ouderdom steller deur die
oorspronklike metode van die ouer te gebruik.