最佳答案
我需要能够 将引用传递给具有给定参数集的函数。
下面是一个传递引用 < em > 没有参数 的示例:
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
但我的问题是 有没有一种方法可以直接将 ABC0函数的引用 With 参数传递给 fr
,而不用将其封装在匿名函数中?
我需要分配什么给 fr
,使它在没有参数(fr()
)的情况下可调用,以便在调用 fr
时执行 f (1,2,3) ?
我跟踪了 Jason Bunting对 给你关于 部分函数的回答,他在那里发布的 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);
};
}