Sobes.tech
Senior

Pastāsti par funkciju super() un kad to izmanto?

sobes.tech AI

Atbilde no AI

super() funkcija klasēs tiek izmantota, lai izsauktu vecāku klases konstruktoru vai vecāka metodes.

Tā tiek piemērota divos galvenajos gadījumos:

  1. Bērnu klases konstruktorā, lai izsauktu pamatklases konstruktoru un pareizi inicializētu mantojumā iegūtās īpašības.

  2. Lai izsauktu vecāka metodes, ja nepieciešams paplašināt vai pārrakstīt uzvedību, saglabājot daļu no pamatklases loģikas.

Piemērs:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} izdala skaņu.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // izsauc Animal konstruktoru
    this.breed = breed;
  }
  speak() {
    super.speak(); // izsauc Animal `speak` metodi
    console.log(`${this.name} rej.`);
  }
}

Bez super() izsaukšanas bērnu klases konstruktorā, notiks kļūda, jo pamatklase nav inicializēta.