どこで書いたらよいでしょうか
重要度: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
で実行されます。