据我所知,以下是“自我调用功能”:
func(){}();
与以下内容有何不同?
func(){} func();
答案 0 :(得分:10)
我认为你的意思是( I )之间有什么区别:
function(){}();
和( II ):
function func(){};
func();
甚至( III ):
var func = function(){};
func();
这三个结果在结果方面表现相同,但是它们具有不同的命名和范围结果:
我:这不会使该功能以任何名称可用,它会运行一次并被遗忘。您不能在将来引用它
II :func
函数在整个封闭函数中创建并可用,甚至在定义之前(提升)
III :func
变量定义为指向函数。在定义之前无法访问它。
请注意,在 II 和 III 中,该功能可通过func
名称进行参考,并可再次多次调用。使用 I 中的自调用功能无法实现这一点。