¿Donde escribe?
importancia: 5
Tenemos rabbit
heredando de animal
.
Si llamamos a rabbit.eat()
, ¿qué objeto recibe la propiedad full
: animal
o rabbit
?
let animal = {
eat() {
this.full = true;
}
};
let rabbit = {
__proto__: animal
};
rabbit.eat();
La respuesta es: rabbit
.
Esto se debe a que this
es un objeto antes del punto, por lo que rabbit.eat()
modifica rabbit
.
La búsqueda y ejecución de propiedades son dos cosas diferentes.
El método rabbit.eat
se encuentra primero en el prototipo, luego se ejecuta con this = rabbit
.