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
};
- Gunakan
__proto__
untuk memasukan prototype dengan cara yang mana membuat property yang mencari akan mengikuti path:pockets
→bed
→table
→head
. Contoh,pockets.pen
haruslah3
(ditemukan ditable
), danbed.glasses
haruslah1
(ditemukan didalamhead
). - Jawab pertanyaan: mana yang lebih cepat didapatkan
glasses
sebagaipockets.glasses
atauhead.glasses
? Jika diperlukan gunakanlah benchmark.
-
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
-
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 dimanaglasses
ditemukan (dalamhead
), dan pencarian selanjutnya akan dicari ditempat yang sama. Mesinnya juga cukup pintar untuk memperbaharui cache internal jika sesuatu berubah, jadi optimasinya akan aman.