JavaScript中的自调用函数是什么?

JavaScript中的自调用函数是什么?,javascript,function,Javascript,Function,据我所知,以下是一个“自调用函数”: 它与下面的有什么不同 func(){} func(); 我想你的意思是(I)之间的区别是什么: 及(II): 甚至(III): 三者在结果方面表现相同,但它们具有不同的命名和范围界定结果: I:这不会使该函数以任何名称可用,它只运行一次就被遗忘了。你以后不能参考它 II:func函数已创建并在整个封闭函数中可用,甚至在定义之前(提升) III:func变量是指向函数定义的。在定义之前,它将不可访问 请注意,在II和III中,该函数可通过funcname

据我所知,以下是一个“自调用函数”:

它与下面的有什么不同

func(){} func();

我想你的意思是(I)之间的区别是什么:

及(II):

甚至(III):

三者在结果方面表现相同,但它们具有不同的命名和范围界定结果:

  • I:这不会使该函数以任何名称可用,它只运行一次就被遗忘了。你以后不能参考它

  • II:
    func
    函数已创建并在整个封闭函数中可用,甚至在定义之前(提升)

  • III:
    func
    变量是指向函数定义的。在定义之前,它将不可访问


请注意,在II和III中,该函数可通过
func
name引用,并可多次再次调用。这在I中的自调用函数中是不可能的。

同意,但在什么情况下使用自调用函数?我的意思是,在某种特定的场景中是否需要使用它们?我知道这很古老,但对于其他读者来说:您可以将自己的所有javascript封装在一个大的自调用函数中以便运行,但您知道它不会向全局命名空间添加变量名-然后,没有其他插件像jQuery或其他任何插件会意外地使用与您和clash相同的名称。
func(){} func();
function(){}();
function func(){};
func();
var func = function(){};
func();