SORU
28 ŞUBAT 2011, PAZARTESİ


'Dizisi kullanımı ne.prototip.dilim.çağrı(dizi, 0)?

Sadece Cızırtı kaynak kodu tarama ve bu kod satırı geldi:

array = Array.prototype.slice.call( array, 0 );

Baktım ne işlevi vardır, ama geldim için sonuç bu sadece döner tüm öğeleri bir dizi başlatılmasını dizin 0 ve koyar bütün halinde bir dizi, yani gerçekten yok bir şey.

Bu nedenle bu kod satırı ne işe yarar? Neyi kaçırıyorum?

Düzenleme:https://github.com/jquery/sizzle/blob/master/sizzle.js#L863 çizgi 863.

CEVAP
28 ŞUBAT 2011, PAZARTESİ


DOM genellikle getElementsByTagName gibi çoğu işlem için NodeList döndürür.

NodeList neredeyse bir dizi gibi hissediyor olsa da, değil. Bir length özelliği gibi bir dizi geliyor, ve bir yöntem item(index) bir nesneye verilen dizini (ayrıca erişilebilir ile [index] gösterim), ama bu benzerlik biter.

Bu yüzden onları NodeList üzerinde bir satır için yeniden yazma olmadan array methods harika kullanabilmek için yararlıdır.

Bir dizi dönüştürerek başka bir kullanım listesi statik yapmaktır. NodeLists genellikle canlı, eğer belge değişiklikleri ortaya çıkarsa, NodeList nesnesinin otomatik olarak güncellenir anlamına gelir. Eğer bir WordPress kullanmak bir nesne size iade ederse gözünün önünde değiştirme tuttu sorunlara neden olabilir. NodeLists ve liveness test etmek için snippet aşağıdakileri deneyin.

var p = document.getElementsByTagName('p');
console.log(p.length); // 2
document.body.appendChild(document.createElement('p'));
// length of p changes as document was modified
console.log(p.length); // 3

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009