kembali ke pelajaran

Dimanakah akan tertulis?

Kita memiliki rabbit mewarisi dari animal.

Jika kita memanggil rabbit.eat(), yang mana objeknya menerima properti full: animal atau rabbit?

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

let rabbit = {
  __proto__: animal
};

rabbit.eat();

Jawabannya: rabbit.

Karena this adalah sebuah objek sebelum titik, jadi rabbit.eat() memodifikasi rabbit.

Pencarian properti dan eksekusi adalah dua hal yang berbeda.

The method rabbit.eat is first found in the prototype, then executed with this=rabbit. Metode rabbit.eat adalah yang pertama ditemukan dalam prototype, lalu dieksekusi dengan this=rabbit.