レッスンに戻る

インスタンス作成エラー

重要性: 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