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

Javascript 从函数返回函数而不调用返回的函数,javascript,function,Javascript,Function,能做到吗 我有以下资料: populate.func = function(node, state) { return (new function(data) { /* stuff*/ }); } 但是,无论使用常规调用约定还是调用方法,调用populate.func都会同时调用被调用函数和返回函数。我希望能够调用populate.func并将函数作为要使用的值返回,而不实际运行它…我甚至不确定您的代码实际在做什么,但我认为您需要的是: populate.func = function

能做到吗

我有以下资料:

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

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

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

populate.func = function(node, state) {
    return function(data) { /* stuff*/ };
}
就这么做吧

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

您的代码正在使用您的函数作为构造函数实例化一个新对象,但您希望返回对您的函数的引用,因此只需删除new关键字。

为什么
new
?没有它,它应该可以工作。我的意思是,比如说
infunc=function(data){/*stuff*/}您执行的操作:
返回infunc
是否希望以字符串形式返回函数?这是新的,因为我了解到这是一个技巧,可以通过引用传递函数,并在函数作为参数传递时(而不是在调用函数时)以该函数时所处的状态传递变量。我认为这样做是因为只要保持指向子函数的指针,父函数和它的调用堆栈都不能被垃圾收集。或者别的什么。@RobF你被错误地告知了,去阅读更多关于javascript的内容吧…@RobF在这里添加new没有任何区别,你是通过引用返回一个对象,由构造函数实例化,但不是函数本身。
返回函数…
将返回对不执行该函数的函数的引用。这似乎起到了作用。在留下反馈之前,我们将等待并尝试一下。为什么new运算符会导致它同时调用这两个函数?因为您执行该函数是为了从中实例化一个对象,使用该函数作为构造函数。这并不能回答这个问题。@RobF是的,这正是它调用该函数的原因。你应该仔细阅读JS中的内容。@RobF你觉得你明白我想说的话了吗?还是还不清楚?