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

Sam*_*ere 1 javascript function

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

function run(someFunction,someArgument) {
    someFunction(someArgument);
}
Run Code Online (Sandbox Code Playgroud)

我看到我可以通过一个现有的功能,说:

function foo(bar) {
    // foo that bar!
}
Run Code Online (Sandbox Code Playgroud)

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

var whiteBoy = {
    playThat: function(funkyMusic) {
        // funk out in every way
    }
};
Run Code Online (Sandbox Code Playgroud)

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

run(/* define a new function */,relevantArgument);
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Jus*_*tin 5

像这样:

run(function(funkyMusic) {
    // funk out in every way
}, relevantArgument);
Run Code Online (Sandbox Code Playgroud)

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

var whiteBoy = {
    playThat: function(funkyMusic) {
        // funk out in every way
    }
};
Run Code Online (Sandbox Code Playgroud)

你在那里做了什么是定义一个函数并将它分配给playThat属性 - 我所做的唯一改变是定义一个函数并将其作为参数传递而不是将其分配给某个东西.