Sobes.tech
Senior

Papaskink apie funkciją super() ir kada ją naudoji?

sobes.tech AI

Atsakymas iš AI

super() funkcija klasėse naudojama tėvų klasės konstruktoriaus arba tėvų metodų iškvietimui.

Ji taikoma dviejose pagrindinėse situacijose:

  1. Vaiko klasės konstruktoriuje, kad iškviestų pagrindinės klasės konstruktorių ir teisingai inicializuotų paveldėtas savybes.

  2. Tėvų metodų iškvietimui, jei reikia išplėsti arba perrašyti elgseną, išlaikant dalį pagrindinės klasės logikos.

Pavyzdys:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} skleidžia garsą.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // iškviečia Animal konstruktorių
    this.breed = breed;
  }
  speak() {
    super.speak(); // iškviečia Animal `speak` metodą
    console.log(`${this.name} loja.`);
  }
}

Be super() iškvietimo vaiko klasės konstruktoriuje įvyks klaida, nes pagrindinė klasė nėra inicializuota.