Как я могу передать ссылку на функцию с параметрами? [Дубликат]
Возможный дубликат:
Как я могу предварительно установить аргументы в вызове функции JavaScript? (Частичное применение функции)
Мне нужно в состояниипередать ссылку на функцию с заданным набором параметров.
Вот пример передачи ссылкибез параметры:
var f = function () {
//Some logic here...
};
var fr = f; //Here I am passing a reference to function 'f', without parameters
fr(); //the 'f' function is invoked, without parameters
Теперь, что мне нужно сделать, это пройти то же самоеf
функция, но на этот раз мне нужно будет передать параметры для ссылки. Теперь я могу сделать это с помощью анонимной функции и вызватьf
функция с параметрами внутри вновь созданной функции, например:
var f = function () {
//Some logic here...
};
var fr = function (pars) {
f(pars);
}; //Here I am creating an anonymous function, and invoking f inside it
fr({p : 'a parameter'}); //Invoking the fr function, that will later invoke the f function with parameters
Но мой вопрос в том,Есть ли способ передать прямую ссылку наf
функция с параметрами дляfr
, но не заключая его в анонимную функцию?
Что мне нужно назначитьfr
сделать его доступным без параметров (fr()
), так что f (1,2,3) выполняется, когдаfr
вызывается?
[ОБНОВИТЬ] Я последовал заДжейсон Бантингответ наВот оЧастичная функция и функция JavaScript, которую он публикует, это именно то, что я искал. Вот решение:
function partial(func /*, 0..n args */) {
var args = Array.prototype.slice.call(arguments).splice(1);
return function() {
var allArguments = args.concat(Array.prototype.slice.call(arguments));
return func.apply(this, allArguments);
};
}