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.