Sobes.tech
Senior

Räägi super() funktsioonist ja millal seda kasutad?

sobes.tech AI

Vastus AI-lt

super() funktsioon kasutatakse klassides vanemklassi konstruktorit või vanemklassi meetodeid kutsumiseks.

Seda rakendatakse kahes peamises olukorras:

  1. Alamsklassi konstruktoris, et kutsuda põhiklassi konstruktor ja õigesti initsialiseerida pärandatud omadused.

  2. Vanemklassi meetodite kutsumiseks, kui soovitakse laiendada või üle kirjutada käitumist, säilitades osa põhiklassi loogikast.

Näide:

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

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // kutsutakse Animal konstruktor
    this.breed = breed;
  }
  speak() {
    super.speak(); // kutsutakse Animal `speak` meetod
    console.log(`${this.name} haukub.`);
  }
}

Ilma super() kutsumiseta alamsklassi konstruktoris, tekib viga, kuna põhiklass ei ole initsialiseeritud.