خوارزمية بحث
ينقسم هذا التمرين إلى قسمين.
لديك الكائنات التالية:
let head = {
glasses: 1
};
let table = {
pen: 3
};
let bed = {
sheet: 1,
pillow: 2
};
let pockets = {
money: 2000
};
- استعمل
__proto__
لإسناد كائنات النموذج الأولي بحيث يكون البحث عن الخاصيات بهذه الطريقة:pockets
ثمّbed
ثمّtable
ثمّhead
(من الأسفل إلى الأعلى على التتالي). فمثلًا، قيمةpockets.pen
تكون3
(منtable
)، وقيمةbed.glasses
تكون1
(منhead
). - أجِب عن هذا السؤال: ما الأسرع، أن نجلب
glasses
هكذاpockets.glasses
أم هكذاhead.glasses
؟ قِس أداء كلّ واحدة لو لزم.
-
لنُضيف خاصيات
__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
-
حين نتكلّم عن المحرّكات الحديثة، فليس هناك فرق (من ناحية الأداء) لو أخذنا الخاصية من الكائن أو من النموذج الأولي، فهي تتذكّر مكان الخاصية وتُعيد استعمالها عند طلبها ثانيةً.
فمثلًا ستتذكّر التعليمة pockets.glasses
بأنّها وجدت glasses
في كائن head
، وفي المرة التالية ستبحث هناك مباشرة. كما أنّها ذكية لتُحدّث ذاكرتها الداخلية ما إن يتغيّر شيء ما لذا فإن الأداء الأمثل في أمان.