创建实例时出错
重要程度: 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);
这是因为子类的 constructor 必须调用 super()
。
这里是修正后的代码:
class Animal {
constructor(name) {
this.name = name;
}
}
class Rabbit extends Animal {
constructor(name) {
super(name);
this.created = Date.now();
}
}
let rabbit = new Rabbit("White Rabbit"); // 现在好了
alert(rabbit.name); // White Rabbit