Sobes.tech
Back to questions
Senior
7

Расскажи про функцию super() и когда её используешь?

Companies where asked
Tangem

Answer from AI

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