Я думаю, что если вы что-то создаете или называете метод объекта, вы хотите использовать объект options. Если это функция, которая работает только с одним или двумя параметрами и возвращает значение, предпочтительнее список аргументов.
В некоторых случаях полезно использовать оба параметра. Если у вашей функции есть один или два требуемых параметра и куча необязательных, сделайте первые два необходимых параметра, а третий - хэш дополнительных опций.
В вашем примере я сделал бы map(nodeList, callback, options)
. Нумеру и обратный вызов требуются, довольно легко рассказать, что происходит, просто прочитав звонок, и это похоже на существующие функции карты. Любые другие опции могут быть переданы как дополнительный третий параметр.