Ваш комментарий к вопросу:
в моем примере последние три являются необязательными.
blockquote>Так почему бы не сделать это? (Примечание: это довольно грубый Javascript. Обычно я использую хэш
default
и обновляю его с помощью опций, переданных с помощью Object.extend или JQuery.extend или аналогичный.)function map(nodeList, callback, options) { options = options || {}; var thisObject = options.thisObject || {}; var fromIndex = options.fromIndex || 0; var toIndex = options.toIndex || 0; }
Итак, теперь, поскольку теперь гораздо более очевидно то, что является необязательным, а что нет, все это действительное использование функции:
map(nodeList, callback); map(nodeList, callback, {}); map(nodeList, callback, null); map(nodeList, callback, { thisObject: {some: 'object'}, }); map(nodeList, callback, { toIndex: 100, }); map(nodeList, callback, { thisObject: {some: 'object'}, fromIndex: 0, toIndex: 100, });