どこに書きますか?
重要性: 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
で実行されます。