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
.