Sobes.tech
Senior

Parla della funzione super() e quando la usi?

sobes.tech AI

Risposta dell'AI

La funzione super() viene utilizzata nelle classi per chiamare il costruttore della classe genitore o i metodi del genitore.

Viene applicata in due casi principali:

  1. Nel costruttore di una classe figlia per chiamare il costruttore della classe base e un'adeguata inizializzazione delle proprietà ereditate.

  2. Per chiamare i metodi del genitore, se si desidera espandere o sovrascrivere il comportamento, mantenendo però parte della logica della classe base.

Esempio:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} emette un suono.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // chiamata al costruttore di Animal
    this.breed = breed;
  }
  speak() {
    super.speak(); // chiamata al metodo speak di Animal
    console.log(`${this.name} abbaia.`);
  }
}

Senza chiamare super() nel costruttore della classe figlia, si otterrà un errore, poiché la classe base non è inizializzata.