ö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.