我收到此错误:Property 'myFunction' of object [object Object] is not a function
myFunction= (function(){
//something
})();
myFunction();
这里有什么问题?我可以再次调用自动执行功能吗?如果我在自动执行函数中使用var,这也无效。
答案 0 :(得分:0)
您将返回值分配给myFunction
。如果您的返回值不是函数,则myFunction
不是函数,您无法调用它。
如果要存储函数以便稍后再次执行它,则不需要自动执行函数表达式:
myFunction= function(){
//something
};
myFunction();
答案 1 :(得分:0)
var myFunction = function(){};
myFunction();
您必须创建一个要调用的函数。自调用闭包不返回函数。
答案 2 :(得分:0)
将函数调用括在括号中
(function (){
// do something
})();
您正在创建一个立即执行的函数表达式。然后,函数表达式的结果将分配给变量myFunction
你可能想要这样的东西:
var myFunction = (function (){
return {
doStuff : function(myVariable){
// do stuff
}
};
})();
这将创建一个分配给myFunction
变量的返回对象。这个返回对象的一个属性是doStuff
,它是一个函数,它接受一个你可以调用的变量,如
myFunction.doStuff('hello world');