Senior
Papaskink apie funkciją super() ir kada ją naudoji?
sobes.tech AI
Atsakymas iš AI
super() funkcija klasėse naudojama tėvų klasės konstruktoriaus arba tėvų metodų iškvietimui.
Ji taikoma dviejose pagrindinėse situacijose:
-
Vaiko klasės konstruktoriuje, kad iškviestų pagrindinės klasės konstruktorių ir teisingai inicializuotų paveldėtas savybes.
-
Tėvų metodų iškvietimui, jei reikia išplėsti arba perrašyti elgseną, išlaikant dalį pagrindinės klasės logikos.
Pavyzdys:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} skleidžia garsą.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // iškviečia Animal konstruktorių
this.breed = breed;
}
speak() {
super.speak(); // iškviečia Animal `speak` metodą
console.log(`${this.name} loja.`);
}
}
Be super() iškvietimo vaiko klasės konstruktoriuje įvyks klaida, nes pagrindinė klasė nėra inicializuota.