Senior
Povedz o funkcii super() a kedy ju používaš?
sobes.tech AI
Odpoveď od AI
Funkcia super() sa v triedach používa na volanie konštruktora rodičovskej triedy alebo metód rodiča.
Používa sa v dvoch hlavných prípadoch:
-
V konštruktore odvodenej triedy na volanie konštruktora základnej triedy a správnu inicializáciu zdedených vlastností.
-
Na volanie metód rodiča, ak je potrebné rozšíriť alebo prepísať správanie, pričom si zachováte časť logiky základnej triedy.
Príklad:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} vydáva zvuk.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // volanie konštruktora Animal
this.breed = breed;
}
speak() {
super.speak(); // volanie metódy speak z Animal
console.log(`${this.name} šteka.`);
}
}
Bez volania super() v konštruktore odvodenej triedy dôjde k chybe, pretože základná trieda nie je inicializovaná.