从函数返回函数而不调用返回的函数

时间:2012-08-07 05:59:58

标签: javascript function

可以吗?

我有以下内容:

populate.func = function(node, state) {
    return (new function(data) { /* stuff*/ });
}

然而,调用populate.func总是调用被调用函数和返回函数,无论我使用常规调用约定还是调用方法。我希望能够调用populate.func并将函数作为值使用,而不是实际运行它...

2 个答案:

答案 0 :(得分:1)

就这样做

populate.func = function(node, state) {
    return (function(data) { /* stuff*/ });
}

您的代码使用您的函数作为构造函数实例化一个新对象,但您想要返回对函数的引用,所以只需删除新关键字。

答案 1 :(得分:0)

我甚至不确定你的代码实际上在做什么,但我认为你想要的是:

populate.func = function(node, state) {
    return function(data) { /* stuff*/ };
}