Sobes.tech
Senior

Разкажи за функцията super() и кога я използваш?

sobes.tech AI

Отговор от AI

Функцията super() се използва в класове за извикване на конструктора на родителския клас или методите на родителя.

Тя се прилага в два основни случая:

  1. В конструктора на наследения клас за извикване на конструктора на базовия клас и правилна инициализация на наследените свойства.

  2. За извикване на методите на родителя, ако е необходимо да се разшири или презапише поведението, като се запази част от логиката на базовия клас.

Пример:

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() в конструктора на наследения клас ще възникне грешка, тъй като базовият клас не е инициализиран.