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
Ç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
Nasıl bir Angular.js birden çok bağıms...
afterDelay ile birden çok bağımsız değ...
Objective-C: birden çok bağımsız değiş...
R-Geçerli birden çok bağımsız değişken...
Bir mesele ile birden çok bağımsız değ...