retour au cours

Où est-ce écrit ?

importance: 5

Nous avons rabbit héritant de animal.

Si nous appelons rabbit.eat(), quel objet reçoit la propriété full: animal ou rabbit?

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

let rabbit = {
  __proto__: animal
};

rabbit.eat();

La réponse: rabbit.

C’est parce que this est un objet avant le point, donc rabbit.eat() modifie rabbit.

La recherche et l’exécution de propriétés sont deux choses différentes.

La méthode rabbit.eat est d’abord trouvée dans le prototype, puis exécutée avec this=rabbit.