为什么JQuery使用IIFE(立即调用函数表达式)

时间:2017-09-24 12:53:19

标签: javascript jquery iife

我得到了一个解释,因此它不会污染全球变量环境。 但为什么不宣布正常的功能并在最后调用它?

function$(){ some awesome code here with variables declared with var keyword}
$();

1 个答案:

答案 0 :(得分:1)

创建如下函数时:

function doSomething() {
    ...
}

它是在window下创建的,可以window.doSomething访问。因此,即使函数内部的变量不在外部溢出,函数名称本身也会污染全局命名空间。因此,它可能与开发人员可能希望使用的自定义函数冲突。

相反,当您使用IIFE并在jQuery$下公开函数时,全局命名空间仍然清晰。