定义要作为参数传递的函数

时间:2011-08-12 10:55:50

标签: javascript function

好吧,所以我一直在看函数并将它们用作参数。假设我有一个带函数的函数并执行它:

function run(someFunction,someArgument) {
    someFunction(someArgument);
}

我看到我可以通过现有的功能,比如说:

function foo(bar) {
    // foo that bar!
}

通过调用run(foo,bar);我也可以动态地在一个对象中组成一个函数并运行它:

var whiteBoy = {
    playThat: function(funkyMusic) {
        // funk out in every way
    }
};

然后我调用run(whiteBoy.playThat,funkyMusic);我想要做的是在调用中定义一个函数,如下所示:

run(/* define a new function */,relevantArgument);

我将如何做到这一点?

2 个答案:

答案 0 :(得分:5)

像这样:

run(function(funkyMusic) {
    // funk out in every way
}, relevantArgument);

你写这篇文章时非常接近:

var whiteBoy = {
    playThat: function(funkyMusic) {
        // funk out in every way
    }
};

你所做的是定义一个函数并将其分配给playThat属性 - 我所做的唯一改变是定义一个函数并将其作为参数传递而不是将其赋值给某些东西。

答案 1 :(得分:2)

run(function(when)
   { 
      alert("play that funky music " + when);
   },
  "noooow!");