zpět k lekci

Chyba při vytváření instance

důležitost: 5

Zde je kód, v němž třída Králík rozšiřuje třídu Zvíře.

Naneštěstí objekty Králík nemohou být vytvořeny. Co je špatně? Opravte to.

class Zvíře {

  constructor(jméno) {
    this.jméno = jméno;
  }

}

class Králík extends Zvíře {
  constructor(jméno) {
    this.jméno = jméno;
    this.datumVytvoření = Date.now();
  }
}

let králík = new Králík("Bílý králík"); // Chyba: this není definováno
alert(králík.jméno);

Je to proto, že konstruktor dítěte musí volat super().

Zde je opravený kód:

class Zvíře {

  constructor(jméno) {
    this.jméno = jméno;
  }

}

class Králík extends Zvíře {
  constructor(jméno) {
    super(jméno);
    this.datumVytvoření = Date.now();
  }
}

let králík = new Králík("Bílý králík"); // nyní v pořádku
alert(králík.jméno); // Bílý králík