インスタンス作成エラー
重要性: 5
これは Animal
を拡張した Rabbit
のコードです。
残念なことに、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"); // エラー: 定義されていません
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