Sobes.tech
Senior

Pověz o funkci super() a kdy ji používáš?

sobes.tech AI

Odpověď od AI

Funkce super() se v třídách používá k volání konstruktoru rodičovské třídy nebo metod rodiče.

Používá se ve dvou hlavních případech:

  1. V konstruktoru odvozené třídy k volání konstruktoru základní třídy a správné inicializaci děděných vlastností.

  2. K volání metod rodiče, pokud je třeba rozšířit nebo přepsat chování, přičemž si zachováte část logiky základní třídy.

Příklad:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} vydává zvuk.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // volání konstruktoru Animal
    this.breed = breed;
  }
  speak() {
    super.speak(); // volání metody speak z Animal
    console.log(`${this.name} štěká.`);
  }
}

Bez volání super() v konstruktoru odvozené třídy dojde k chybě, protože základní třída není inicializována.