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

  • Floortile83

    Floortile83

    16 Ocak 2010
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008