建立執行個體時發生錯誤
重要性: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("White Rabbit"); // ok now
alert(rabbit.name); // White Rabbit