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:
-
V konstruktoru odvozené třídy k volání konstruktoru základní třídy a správné inicializaci děděných vlastností.
-
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.