Al crear una función de JavaScript con múltiples argumentos, siempre me enfrento a esta opción: pasar una lista de argumentos frente a pasar un objeto de opciones.
Por ejemplo, estoy escribiendo una función para asignar una lista de nodos a una matriz:
function map(nodeList, callback, thisObject, fromIndex, toIndex){
...
}
En cambio, podría usar esto:
function map(options){
...
}
donde options es un objeto:
options={
nodeList:...,
callback:...,
thisObject:...,
fromIndex:...,
toIndex:...
}
¿Cuál es la forma recomendada? ¿Existen pautas sobre cuándo usar uno versus el otro?
[Actualización] Parece haber un consenso a favor del objeto de opciones, por lo que me gustaría agregar un comentario: una razón por la que me sentí tentado a usar la lista de argumentos en mi caso fue tener un comportamiento coherente con el JavaScript construido en el método array.map.
Array.prototype.maptiene una API simple que no debería dejar a ningún codificador semi-experimentado desconcertado.