Sobes.tech
Senior

Opowiedz o funkcji super() i kiedy jej używasz?

sobes.tech AI

Odpowiedź od AI

Funkcja super() jest używana w klasach do wywoływania konstruktora klasy nadrzędnej lub metod nadrzędnych.

Stosuje się ją w dwóch głównych przypadkach:

  1. W konstruktorze klasy potomnej, aby wywołać konstruktor klasy bazowej i poprawnie zainicjalizować dziedziczone właściwości.

  2. Do wywoływania metod rodzica, jeśli trzeba rozszerzyć lub nadpisać zachowanie, zachowując część logiki klasy bazowej.

Przykład:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} wydaje dźwięk.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // wywołanie konstruktora Animal
    this.breed = breed;
  }
  speak() {
    super.speak(); // wywołanie metody speak z Animal
    console.log(`${this.name} szczeka.`);
  }
}

Bez wywołania super() w konstruktorze klasy potomnej, wystąpi błąd, ponieważ klasa bazowa nie jest zainicjalizowana.