önem: 5
#Arama algoritması
Görev iki bölümden oluşmaktadır.
Bir objemiz var:
let head = {
glasses: 1
};
let table = {
pen: 3
};
let bed = {
sheet: 1,
pillow: 2
};
let pockets = {
money: 2000
};
__proto__
kullanarak prototipleri özellikleripockets
->bed
->table
->head
gibi bir yolu takip edecek şekilde prototipleri atayınız. Örneğinpockets.pen
3
(table
’da bulunan ) olmalı,bed.glasses
ise1
(head
’de bulunmalı)- Sizce
glasses
değerinipocket.glasses
ile mi yoksahead.glasses
ile mi almak daha hızlıdır?
-
__proto__
'yu ekleyelim: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
-
Modern JavaScript motorlarında, bir özelliği objeden veya prototypetan almasının bir farklılığı yoktur. Özelliğin nerede olduğunu hatırlar ve bunu bir sonraki talepte tekrar kullanabilirler.
Örneğin,
pockets.glasses
glasses
’ı nerede bulduğunu hatırlar. Bu durumdaglasses
head
’de bulundu, bir sonraki sefere doğrudan orada arayacaktır. Ayrıca kodda herhangi bir değişiklik olduğunda kendi önbelleğini siler böylece optimizasyon güvenli olur.