どこで書いたらよいでしょうか
重要度:5
animalから継承されたrabbitがあります。
rabbit.eat()と呼び出した場合、fullプロパティを受け取るオブジェクトはanimalですか、それともrabbitですか。
let animal = {
eat() {
this.full = true;
}
};
let rabbit = {
__proto__: animal
};
rabbit.eat();
解答はrabbitです。
これは、thisはドットの前にあるオブジェクトであるため、rabbit.eat()がrabbitを変更するからです。
プロパティの参照と実行は、2つの異なるものです。
rabbit.eatメソッドは、まずプロトタイプで見つかり、次にthis=rabbitで実行されます。