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

Why do JQuery uses IIFE (Immediately invoked function expression)

我得到了一个解释,所以它不会污染全局变量环境。 但为什么不直接声明普通函数并在最后调用它呢?

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

当您创建如下函数时:

function doSomething() {
    ...
}

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

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