can';在javascript中不能再次匿名调用函数?
然后我调用can';在javascript中不能再次匿名调用函数?,javascript,Javascript,然后我调用func()它说func不是一个函数 如果是这样的话,我必须这么做 var func = (function(){ //do something })(); 后来 function func(){ //do something }; func(); 对吗 此代码的末尾有(),即它已经在调用函数。分配给func的值是函数的返回值 如果要将函数本身分配给func,只需执行以下操作: var func = (function(){ //do something })(); 就这样做吧,
func()
它说func不是一个函数
如果是这样的话,我必须这么做
var func = (function(){
//do something
})();
后来
function func(){
//do something
};
func();
对吗
此代码的末尾有()
,即它已经在调用函数。分配给func
的值是函数的返回值
如果要将函数本身分配给func
,只需执行以下操作:
var func = (function(){
//do something
})();
就这样做吧,你不需要()错误是正确的
func
是调用函数的结果(由定义后的()
引起)。如果不这样做,就会解决这个问题
请注意,您不能重复使用匿名函数,因为您无法识别要重复使用的函数。由于您将其分配给变量,因此您实际上是在给它命名。您在这里使用的函数已通过
(Function(){})(
要将func
用作函数,必须返回函数
var func = function(){
}
console.log(func);
因此,您可以调用func()
JSFIDLE
A自调用匿名函数是一个只能执行一次的函数,因为它没有引用 在这种情况下
var func = (function(){
return function (){
// do something here
}
})();
变量func没有对匿名函数的引用,那么它将包含函数返回的值,在本例中为未定义值
如果希望能够调用函数,则必须创建如下引用:
var func = (function(){
//do something
})();
或
以下语法
(函数(){
//做点什么
})()
被称为
当你这样做的时候
var func=(函数(){
//做点什么
})();
您没有指定函数,而是指定其响应。因此,如果返回一个对象,它将引用该对象而不是函数
如果您希望有一个函数充当init,并且能够在单词后调用它,请使用命名函数并调用此函数
函数init(){}
init();
请参阅以获取更多参考
当你定义一个函数,比如
函数func1(){}
//或
var func1=函数(){}
在内存中创建一个引用,并将其分配给functionName,然后使用该名称来调用它。创建匿名函数时,您没有存储任何引用,因此无法调用它。我希望它本身是init,然后再次调用,这是不可能的?@AliciaBrandon“init by its and call it”是什么意思?调用本身我的意思是添加
func()代码>如果你想在那里调用它。或者,如果你疯了,var func;(func=函数(){…})()代码>。这似乎比其他答案更详细,没有任何行为差异。谢谢,思考会为答案添加更多内容。
var func = (function(){
return function (){
// do something here
}
})();
var func = (function(){
//do something
})();
var func = function(){
//do something
};
function func() {
// do something
}