据我所知,以下是一种“自调用函数”:
以下内容与此有何不同?
func(){}();
以下内容与此有何不同?
func(){} func();
func(){}();
func(){} func();
我猜你的意思是 (I) 的区别是什么:
function(){}();
并且 (II):
function func(){};
func();
或者甚至 (III):
var func = function(){};
func();
这三种方法在结果方面的行为相同,但它们具有不同的命名和作用域后果:
I:此方法不会将函数提供给任何名称,在运行一次后被遗忘。您不能在未来引用它。
II: func
函数在整个封闭函数中创建并可用,即使在定义之前也是如此 (hoisting)。
III: func
变量指向一个函数。在定义之前它不会被访问。
请注意,在 II 和 III 中,可以通过 func
名称引用该函数,并且可以多次调用。这对于 I 中的自调用函数是不可能的。