کجا مینویسد؟
اهمیت: 5
ما rabbit را داریم که از animal ارثبری میکند.
اگر ما rabbit.eat() را فراخوانی کنیم، کدام شیء ویژگی full را دریافت میکند: animal یا rabbit؟
let animal = {
eat() {
this.full = true;
}
};
let rabbit = {
__proto__: animal
};
rabbit.eat();
جواب: rabbit.
به این دلیل که this برابر با شیء قبل از نقطه است پس rabbit.eat() شیء rabbit را تغییر میدهد.
جست و جوی ویژگی و اجرا کردن دو موضوع جدا هستند.
متد rabbit.eat ابتدا در پروتوتایپ پیدا شد سپس با this=rabbit اجرا شد.