Deo zbornika Učimo Javascript

Ključna reč super u Javascriptu

Rezervisana reč super se može koristiti na tri načina:

  • super(a, b) da bismo pozvali konstruktor nadređene klase.
  • super.nekaMetoda() da bismo pozvali metodu nadređene klase.
  • super.nekoSvojstvo da bismo pristupili svojstvu nadređene klase.

Poziv konstruktora nadklase

Da bismo u konstruktoru izvedene klase koristili reč this, moramo prethodno pozvati konstruktor nadklase pomoću metode super(). Na primer, sledeći deo koda neće biti izvršen:

class Junak {
  constructor(ime) {
    this.ime = ime
    this.energija = 100
  }
}

class Ork extends Junak {
  constructor(ime) {
    this.bojaKoze = "zelena"
  }
}

const grundak = new Ork("Grundak")

Sledeći kod će raditi, jer pozivamo roditeljski konstruktor pomoću super(), pre nego što upotrebimo this:

class Junak {
  constructor(ime) {
    this.ime = ime
    this.energija = 100
  }
}

class Ork extends Junak {
  constructor(ime) {
    super(ime)
    this.bojaKoze = "zelena"
  }
}

const grundak = new Ork("Grundak")
console.log(grundak.bojaKoze)

Podrazumevani konstruktor

Ukoliko nemamo konstruktor u izvedenoj klasi, podrazumevani konstruktor je sledeći:

constructor(...args) {
  super(...args)
}

Zapravo, samo prosleđuje roditelju sve argumente koje primi.