ارور در ساختن نمونه
اهمیت: 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); // خرگوش سفید