назад до уроку

Де буде записано?

важливість: 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.