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.penharuslah3(ditemukan ditable), danbed.glassesharuslah1(ditemukan didalamhead). - Jawab pertanyaan: mana yang lebih cepat didapatkan
glassessebagaipockets.glassesatauhead.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.glassesmereka ingat dimanaglassesditemukan (dalamhead), dan pencarian selanjutnya akan dicari ditempat yang sama. Mesinnya juga cukup pintar untuk memperbaharui cache internal jika sesuatu berubah, jadi optimasinya akan aman.