Vorremo rendere disponibile questo progetto open-source per persone in tutto il mondo.

Aiutaci a tradurre il contenuto di questo tutorial nella tua lingua!

torna alle lezioni

Dove andrà a scrivere?

importanza: 5

Abbiamo un oggetto rabbit che eredita da animal.

Se invochiamo rabbit.eat(), quale oggetto riceverà la proprietà full: animal o rabbit?

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

La risposta: rabbit.

Questo perché this fa riferimento all’oggetto prima del punto, quindi rabbit.eat() modifica rabbit.

La ricerca della proprietà e la sua esecuzione sono cose differenti.

Il metodo rabbit.eat viene prima cercato nel prototype, e successivamente eseguito con this=rabbit.