Qidiruv algoritmi
Vazifa ikki qismdan iborat.
Bizning obyektimiz bor:
let head = {
glasses: 1,
};
let table = {
pen: 3,
};
let bed = {
sheet: 1,
pillow: 2,
};
let pockets = {
money: 2000,
};
__proto__
dan foydalanib, prototiplarni har qanday xususiyatni qidirish yo’liga mos keladigan tarzda belgilang:pockets
→bed
→table
→head
. Masalan,pockets.pen
3
(table
da topildi) vabed.glasses
1
(head
da topildi) bo’lishi kerak.- Savolga javob bering:
glasses
nipockets.glasses
yokihead.glasses
sifatida olish tezroq? Agar kerak bo’lsa, benchmark.
-
__proto__
qo’shaylik: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
-
Zamonaviy interpretatorlarda, ishlash jihatidan, biz obyektdan yoki uning prototipidan xususiyatni olishi bilan farq qilmaydi. Ular xususiyat qayerdan topilganligini eslashadi va uni keyingi so’rovda qayta ishlatadilar.
Masalan,
pockets.glasses
uchun ularglasses
(boshida
) qayerdan topganlarini eslashadi va keyingi safar u yerda qidirishadi. Ular, shuningdek, biror narsa o’zgargan taqdirda ichki keshlarni yangilash uchun yetarlicha aqlli, shuning uchun optimallashtirish xavfsizdir.