Sobes.tech
Senior

Ispričaj o funkciji super() i kada je koristiš?

sobes.tech АИ

Одговор од АИ

Funkcija super() se koristi u klasama za pozivanje konstruktora roditeljske klase ili metoda roditelja.

Primjenjuje se u dva glavna slučaja:

  1. U konstruktoru podklase za pozivanje konstruktora osnovne klase i ispravnu inicijalizaciju nasleđenih svojstava.

  2. Za pozivanje metoda roditelja, ako je potrebno proširiti ili prepisati ponašanje, ali pritom sačuvati deo logike osnovne klase.

Primer:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} pravi zvuk.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // pozivanje konstruktora Animal
    this.breed = breed;
  }
  speak() {
    super.speak(); // pozivanje metode speak iz Animal
    console.log(`${this.name} laje.`);
  }
}

Bez poziva super() u konstruktoru podklase, doći će do greške, jer osnovna klasa nije inicijalizovana.