我正在尝试重用如下的巨大功能
var hugeFunction = function(bell, whistle, another, param, another, param) {
//lots of work
}
在它下面,在同一个函数中,我们有
self.useFunctionInstance = hugeFunction(bell, whistle, another, param, another, param);
所以当我打电话时
self.useFunctionInstance()
我收到以下错误:
Uncaught TypeError: undefined is not a function on line 3862 (helloApp#undefined)
我尝试了所有的东西,并且阅读了很多,但我还是没有得到它!请帮忙!?
编辑:巨大的功能本质上是一个浏览函数,有大量的参数,并没有返回任何东西,我只是想能够调用它,但如果我必须让它返回一些东西,那么它很好,我我会这样做的。有没有办法让函数使用另一个函数?我可能会以错误的方式提出问题,非常感谢你的帮助!
答案 0 :(得分:1)
如果要从该属性调用函数,则需要为useFunctionInstance
分配函数。
// Assign anonymous function that invokes `hugeFunction()`
self.useFunctionInstance = function() {
return hugeFunction(bell, whistle, another, param, another, param);
};
你拥有它的方式,你立即调用,并分配其返回值,显然是undefined
。
如果您需要永久捕获变量的当前状态,则可以使用.bind()
创建一个具有这些值的新函数。
self.useFunctionInstance = hugeFunction.bind(null, bell, whistle, another, param, another, param);
答案 1 :(得分:0)
您已将hugeFunction的返回值指定为useFunctionInstance,并且您似乎没有返回任何内容。
你应该回来关闭以做你想做的事。
var hugeFunction = function(bell, whistle, another, param, another, param) {
return function() {
//lots of work
}
}
答案 2 :(得分:0)
你也可以这样做:
self.useFunctionInstance = hugeFunction;
然后称之为:
self.useFunctionInstance(bell, whistle, another, param, another, param);
问题是您将函数返回值(以及调用它)分配给self.useFunctionInstance
。