Senior
Разкажи за функцията super() и кога я използваш?
sobes.tech AI
Отговор от AI
Функцията super() се използва в класове за извикване на конструктора на родителския клас или методите на родителя.
Тя се прилага в два основни случая:
-
В конструктора на наследения клас за извикване на конструктора на базовия клас и правилна инициализация на наследените свойства.
-
За извикване на методите на родителя, ако е необходимо да се разшири или презапише поведението, като се запази част от логиката на базовия клас.
Пример:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} издава звук.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // извикване на конструктора на Animal
this.breed = breed;
}
speak() {
super.speak(); // извикване на метода speak от Animal
console.log(`${this.name} лае.`);
}
}
Без извикване на super() в конструктора на наследения клас ще възникне грешка, тъй като базовият клас не е инициализиран.