SORU
15 ŞUBAT 2010, PAZARTESİ


Neden 'diziler JavaScript kötü uygulama olarak kabul' (listede var kalem)?

Basit bir sıfır tabanlı verilen sayısal endeksli dizi:

var list = ['Foo', 'Bar', 'Baz'];

Birçok kez, birisi böyle bir dizi değişkenleri döngü önerdiğinde fark ettim:

for(var item in list) { ... }

...hemen hemen hiç biri o kadar da kötü bişey ima var ve alternatif bir yaklaşım öneriyor:

var count = list.length;

for(var i = 0; i < count; i  ) {
    var item = list[i];
    ...
}

Yukarıda basit bir sürümünü kullanıyorsanız ve ikinci örnek yerine kullanmak için değil sebebi ne?

CEVAP
15 ŞUBAT 2010, PAZARTESİ


İlk olarak, döngü sırasını özelliklerini istediğiniz sırayla tekrarlanır olacak garantisi yok yani for...in bir döngü için tanımlanmamış.

İkinci olarak, for...in tüm adımlar bir nesne, bu onun prototip miras da dahil olmak üzere sayısız özellikleri. Diziler halinde, eğer bu kod veya herhangi bir kütüphane sayfasında yer yapmak için gerçekten yararlı bir şey olabilir Array: prototip artırılmış varsa sizi etkileyebilir

Array.prototype.remove = function(val) {
    // Irrelevant implementation details
};

var a = ["a", "b", "c"];

for (var i in a) {
    console.log(i);
}

// Logs 0, 1, 2, "remove" (though not necessarily in that order)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013
  • jcortes187

    jcortes187

    24 Mart 2006