kembali ke pelajaran

Algoritma pencarian

Tugasnya memiliki dua bagian.

Diberikan objek-objek berikut:

let head = {
  glasses: 1
};

let table = {
  pen: 3
};

let bed = {
  sheet: 1,
  pillow: 2
};

let pockets = {
  money: 2000
};
  1. Gunakan __proto__ untuk memasukan prototype dengan cara yang mana membuat property yang mencari akan mengikuti path: pocketsbedtablehead. Contoh, pockets.pen haruslah 3 (ditemukan di table), dan bed.glasses haruslah 1 (ditemukan didalam head).
  2. Jawab pertanyaan: mana yang lebih cepat didapatkan glasses sebagai pockets.glasses atau head.glasses? Jika diperlukan gunakanlah benchmark.
  1. Let’s add __proto__:

    let head = {
      glasses: 1
    };
    
    let table = {
      pen: 3,
      __proto__: head
    };
    
    let bed = {
      sheet: 1,
      pillow: 2,
      __proto__: table
    };
    
    let pockets = {
      money: 2000,
      __proto__: bed
    };
    
    alert( pockets.pen ); // 3
    alert( bed.glasses ); // 1
    alert( table.money ); // undefined
  2. Dalam mesin modern, kinerja yang bagus, tidak ada perbedaan apakan kita mengambil properti dari sebuah objek atau dari prototypenya. Mesinnya akan ingat darimana mengambil propertinya dan menggunakannya kembali pada request selanjutnya.

    Contoh, untuk pockets.glasses mereka ingat dimana glasses ditemukan (dalam head), dan pencarian selanjutnya akan dicari ditempat yang sama. Mesinnya juga cukup pintar untuk memperbaharui cache internal jika sesuatu berubah, jadi optimasinya akan aman.