Derse geri dön

ö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
};
  1. __proto__ kullanarak prototipleri özellikleri pockets->bed->table->head gibi bir yolu takip edecek şekilde prototipleri atayınız. Örneğin pockets.pen 3 ( table’da bulunan ) olmalı, bed.glasses ise 1 ( head’de bulunmalı)
  2. Sizce glasses değerini pocket.glasses ile mi yoksa head.glasses ile mi almak daha hızlıdır?
  1. __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
  2. 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 durumda glasses 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.