Konstruktor pärimisel OOP-s JavaScriptis
Pärimisel on võimalik üle defineerida vanema konstruktorit. Vaatame seda näite abil. Olgu meil järgmine vanema klass:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Olgu vanemaklassist pärib järgmine klass:
class Student extends User {
}
Oletame, et me tahame järglasklassis laiendada konstruktorit, lisades sellesse täiendavaid parameetreid:
class Student extends User {
constructor(name, surn, year) {
}
}
Sellisel juhul peime tingimata
esimesel real kutsuma välja vanema
konstruktori läbi super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Käsk super on olemuselt
vanema konstruktor. Seetõttu
edastame sellele nõutud parameetrid:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Nüüd kirjutame järglases õppeaasta järglase enda omadusse:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Teeme getteri õppeaasta jaoks:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Olgu klass Employee pärib
klassist User sellest
õppetükist.
Defineeri üle klassis Employee
vanema konstruktor, lisades sellesse
parameetri vanuse ja palgaga.
Tege getterid vanuse ja palga jaoks.