SORU
10 EKİM 2012, ÇARŞAMBA


Birden çok bağımsız değişken vs seçenekleri nesne

Birden fazla bağımsız değişken ile bir JavaScript fonksiyonu oluştururken, her zaman bu seçim ile karşı karşıya kalıyorum: bağımsız değişkenler listesindeki pass vs seçenekleri bir nesne geçmek.

Örneğin bir nodeList bir dizi: harita için bir fonksiyon yazıyorum

function map(nodeList, callback, thisObject, fromIndex, toIndex){
    ...
}

Bu işime yarayabilir yerine:

function map(options){
    ...
}

seçenekleri bir nesne

options={
    nodeList:...,
    callback:...,
    thisObject:...,
    fromIndex:...,
    toIndex:...
}

Hangisini tavsiye? Diğer vs kullanmak için kurallar vardır?

[Güncelleme] gibi gözüküyor bir uzlaşma lehine seçenekleri nesne, çok isterim yorum ekle: bir sebebi bendim cazip kullanın argümanlar listesini bir olay oldu bir davranış ile tutarlı JavaScript yerleşik dizi.göster yöntemi.

CEVAP
10 EKİM 2012, ÇARŞAMBA


Çok diğerleri gibi, sık sık bir fonksiyon için options object bir parametre geçirerek uzun bir liste geçirmeden yerine tercih ederim, ama gerçekten kesin şartlara bağlıdır.

Kod okunabilirliği turnusol testi olarak kullanıyorum.

Eğer bu işlev çağrısı var örneğin:

checkStringLength(inputStr, 10);

Kod bu şekilde okunabilir oldukça küçük ve bireysel parametreleri geçirmeden gayet iyi olduğunu düşünüyorum.

Diğer taraftan, bu gibi çağrıları ile işlevleri vardır:

initiateTransferProtocol("http", false, 150, 90, null, true, 18);

Tabii tamamen okunamaz biraz araştırma yapın. Öte yandan, bu kod iyi okur:

initiateTransferProtocol({
  "protocol": "http",
  "sync":      false,
  "delayBetweenRetries": 150,
  "randomVarianceBetweenRetries": 90,
  "retryCallback": null,
  "log": true,
  "maxRetries": 18
 });

Eğer başparmak kuralları belirttim eğer bir bilim bir sanat daha olduğunu, ama:

Seçenekleri bir parametre kullanın:

  • Dörtten fazla parametre var
  • Parametreler isteğe bağlıdır
  • Hiç gerekenlere anlamaya işlevi aramak zorunda kalmıştım
  • Eğer birisi hiç "ARRRRRG!" bağırırken seni boğmaya çalışırsa

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bethliebert

    bethliebert

    23 EKİM 2008
  • Mr. H

    Mr. H

    1 Temmuz 2012
  • Truc Minh

    Truc Minh

    23 Ocak 2011