返回課程

在哪裡寫的?

重要性:5

我們有 rabbit 繼承自 animal

如果我們呼叫 rabbit.eat(),哪個物件會接收 full 屬性:animalrabbit

let animal = {
  eat() {
    this.full = true;
  }
};

let rabbit = {
  __proto__: animal
};

rabbit.eat();

答案:rabbit

這是因為 this 是點之前的物件,所以 rabbit.eat() 會修改 rabbit

屬性查詢和執行是兩件不同的事情。

方法 rabbit.eat 會先在原型中找到,然後以 this=rabbit 執行。