検索アルゴリズム
importance: 5
このタスクには2つの部分があります。
次のオブジェクトを指定してください
let head = {
glasses: 1
};
let table = {
pen: 3
};
let bed = {
sheet: 1,
pillow: 2
};
let pockets = {
money: 2000
};
- すべてのオブジェクトプロパティが
pockets→bed→table→headのパスに従う方法で__proto__を使用してプロトタイプを割り当てます。たとえば、pockets.penは3(tableで見つかった)、bed.glassesは1(headで見つかった)である必要があります。 pockets.glassesかhead.glassesのどちらで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)が見つかった場所を記憶し、次回はその場所を検索します。また、変更があれば内部キャッシュを更新するほど賢いため、最適化は安全です。