返回課程

建立執行個體時發生錯誤

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