如何使用javascript在另一个具有可变参数的函数中传递函数?
我有一个预处理函数,这里是一个示例函数如何使用javascript在另一个具有可变参数的函数中传递函数?,javascript,function,closures,pass-by-reference,Javascript,Function,Closures,Pass By Reference,我有一个预处理函数,这里是一个示例函数 function preprocess (msg, fct) { alert(msg); fct(???); } 我需要在preprocess函数中执行函数fct,但是fct的参数数量并不总是相同的。我不是javascript专家,但我认为有两种方法可以实现这一点: 使用对象显式调用 function preprocess (msg, fct, obj) { ... } 用法:preprocess('hello',myfct,{first
function preprocess (msg, fct) {
alert(msg);
fct(???);
}
我需要在preprocess
函数中执行函数fct
,但是fct
的参数数量并不总是相同的。我不是javascript专家,但我认为有两种方法可以实现这一点:
function preprocess (msg, fct, obj) { ... }
preprocess('hello',myfct,{firstparam:'foo',secondparam:'bar'})代码>
使用函数的参数内部属性
不管怎么说,我可能有这个理论,但我无法编写上述两种情况的代码。这两种方法都能满足我的需要吗?如果是,您能提供每个参数的最小示例来告诉我方法吗?您可以在末尾以可变形式传递参数,并使用参数
对象来获得所需的:
function preprocess (msg, fct /*, ...as*/) {
var as = [].slice.call(arguments, 2);
alert(msg);
fct.apply(this, as);
}
preprocess(msg, fct, a, b, c); // fct(a, b, c)