执行返回函数的语法

时间:2012-10-12 13:25:13

标签: javascript

如果我从一个函数返回一个函数,如下所示,我该如何执行它并设置参数?

var func1 = function(param){
    // do stuff
};

function returnFunction(){
    return func1;
}

returnFunction() // this will return func1 but I want to execute it with certain param.

3 个答案:

答案 0 :(得分:6)

您可以像平常一样执行它:

returnFunction()("whatever");

这是working example

让它更容易阅读:

var fn = returnFunction();
fn("whatever");

答案 1 :(得分:2)

像任何其他函数调用一样:

returnFunction()(foobar)

答案 2 :(得分:0)

您似乎将功能视为某些magical construct

调用函数不是魔术

但是,函数只是可以使用()运算符操作的值。

!(x || y)对你来说有点奇怪吗? !在某种程度上与()非常相似,只是您在其操作数之前将其写入,而在之后编写() 操作数。他们获取一个值,操作它并返回一个值,这就是它的全部内容。

理解了这一点后,x()()() 不会看起来很奇怪,它只是异常x显然是一个函数,它返回一个函数,返回一个函数,返回一些东西:值(x()()())

将这种新理解应用于您的示例

如您所知,returnFunction()将返回func1。因此,整个表达式returnFunction() 会产生 func1,因为您可以将()运算符应用于,这就是你需要做的所有事情:

returnFunction()(arg)