Возникла необходимость работать с функциями, у которых не определено количество аргументов. Почитал
эту статью, все весьма доступно и понятно. Как извлекать пришедшие аргументы я разобрался, и как пользоваться Array-методами в контексте arguments тоже, за что огромное спасибо автору. Однако я столкнулся с проблемой дальнейшего использования полученных значений.
Имеется следующая конструкция:
myMethod(function(a, b, c) {
// do something
}, 'arg1', 'arg2', 'arg3');
Фактически функция
myMethod() принимает в себя неопределенное количество аргументов, среди которых первый - некая анонимная функция, а все последующие являются аргументами, в нее передаваемыми. То есть должно это выглядеть так:
a = 'arg1', b = 'arg2', c = 'arg3'
Сперва я обрабатывают псевдо-массив arguments и вынимаю из него первый элемент:
var fn = Array.prototype.shift.call(arguments);
Затем пытаюсь запустить функцию:
fn(arguments);
В итоге получаю значения
[object Arguments],
undefined,
undefined. То есть аргументы передаются в функцию как есть - в виде массива, а не набора аргументов.
Подскажите пожалуйста возможные пути решения такой задачи.