为什么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
或 $
下公开函数时,全局命名空间保持清晰。
我得到了一个解释,所以它不会污染全局变量环境。 但为什么不直接声明普通函数并在最后调用它呢?
function$(){ some awesome code here with variables declared with var keyword}
$();
当您创建如下函数时:
function doSomething() {
...
}
它是在 window
下创建的,并且可以作为 window.doSomething
访问。所以即使函数内部的变量没有溢出到外面,函数名本身也会污染全局命名空间。因此它可能与开发人员可能希望使用的自定义函数发生冲突。
相反,当您使用 IIFE 并在 jQuery
或 $
下公开函数时,全局命名空间保持清晰。