我得到了一个解释,因此它不会污染全球变量环境。 但为什么不宣布正常的功能并在最后调用它?
function$(){ some awesome code here with variables declared with var keyword}
$();
答案 0 :(得分:1)
创建如下函数时:
function doSomething() {
...
}
它是在window
下创建的,可以window.doSomething
访问。因此,即使函数内部的变量不在外部溢出,函数名称本身也会污染全局命名空间。因此,它可能与开发人员可能希望使用的自定义函数冲突。
相反,当您使用IIFE并在jQuery
或$
下公开函数时,全局命名空间仍然清晰。