Мы хотим сделать этот проект с открытым исходным кодом доступным для людей во всем мире. Пожалуйста, помогите нам перевести это руководство на другие языки.
КупитьEPUB/PDF
Поделиться
вернуться к уроку

Ошибка создания экземпляра класса

важность: 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("Белый кролик"); // 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); // White Rabbit

AltStyle によって変換されたページ (->オリジナル) /