JavaScript: 如何将匿名函数作为函数参数传递?

5
我希望编写一个函数,它可以接受一个匿名函数作为参数。例如:
run('param1', function(){
    alert('execute this');
});

function run(param1, callback) {
    //now execute the callback parameter as a function
}

我该如何实现类似这样的功能?
1个回答

11

callback() 将调用它。

如果您需要提供上下文,请使用 callback.apply(this, arguments)。当您使用 .apply 时,请注意当前的执行上下文,基本上知道 this 将引用什么,否则,如果您正在馈送一个引用其函数体内部的 this 的字面量,则代码将无法按预期工作。


嗯...看起来工作正常,但是Firebug抱怨callback()不是一个函数。也许是Firebug的一个bug? - Andrew
你确定它抱怨的是callback不是一个函数,还是抱怨run?Firebug对我来说显示run未定义(Chrome控制台可以完美执行)。原因是因为在Firebug中直接评估的代码与如果代码在网页中的处理方式不同。如果它没有抱怨run,那么请检查是否有拼写错误。 - meder omuraliev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接