назад до уроку

Помилка створення екземпляра

важливість: 5

Ось код з Rabbit розширює Animal.

На жаль, неможливо створити об’єкти Rabbit. Що не так? Полагодьте це.

class Animal {

  constructor(name) {
    this.name = name;
  }

}

class Rabbit extends Animal {
  constructor(name) {
    this.name = name;
    this.created = Date.now();
  }
}

let rabbit = new Rabbit("White Rabbit"); // Error: this is not defined
alert(rabbit.name);

Це тому, що конструктор дочірнього классу повинен викликати super().

Ось правильний код:

class Animal {

  constructor(name) {
    this.name = name;
  }

}

class Rabbit extends Animal {
  constructor(name) {
    super(name);
    this.created = Date.now();
  }
}

let rabbit = new Rabbit("Білий кролик"); // зараз добре
alert(rabbit.name); // Білий кролик