ö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->headgibi bir yolu takip edecek şekilde prototipleri atayınız. Örneğinpockets.pen3(table’da bulunan ) olmalı,bed.glassesise1(head’de bulunmalı)- Sizce
glassesdeğerinipocket.glassesile mi yoksahead.glassesile 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.glassesglasses’ı nerede bulduğunu hatırlar. Bu durumdaglasseshead’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.