Ao criar uma função JavaScript com vários argumentos, sempre sou confrontado com esta opção: passe uma lista de argumentos versus passe um objeto de opções.
Por exemplo, estou escrevendo uma função para mapear um nodeList para uma matriz:
function map(nodeList, callback, thisObject, fromIndex, toIndex){
...
}
Eu poderia usar isso:
function map(options){
...
}
onde options é um objeto:
options={
nodeList:...,
callback:...,
thisObject:...,
fromIndex:...,
toIndex:...
}
Qual é o caminho recomendado? Existem diretrizes para quando usar um vs. o outro?
[Update] Parece haver um consenso a favor do objeto de opções, então eu gostaria de adicionar um comentário: uma razão pela qual fiquei tentada a usar a lista de argumentos no meu caso foi ter um comportamento consistente com o JavaScript incorporado no método array.map.
Array.prototype.map
tem uma API simples que não deve deixar nenhum codificador semi-experiente intrigado.