Sobes.tech
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:

  1. V konštruktore odvodenej triedy na volanie konštruktora základnej triedy a správnu inicializáciu zdedených vlastností.

  2. 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á.