بازگشت به درس

ارور در ساختن نمونه

اهمیت: 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("خرگوش سفید"); // تعریف نشده است this :ارور
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("خرگوش سفید"); // الان مشکلی نیست
alert(rabbit.name); // خرگوش سفید