(function (window, undefined) {
...
})(window)
(1)匿名函数自执行,将jQuery内的所有代码都是局部属性,与外部代码不冲突。(2)将window作为参数传入匿名函数的目的:
a.查找window速度快;
(window属于JS的最顶端,查找速度较慢;根据作用域原理,变量从离它最近的作用域逐级向上查找,传参之后找的就是参数中的window,而不会去找外面的window,参数window和匿名函数中的局部变量所处的作用域一样。)
b.利于JS代码压缩。
(3)undefined传参的目的:
a.防止undefined被修改
(undefined为window下的一个属性,不是保留字也不是关键字;undefined在某些浏览器下是可以被修改的,如IE7,IE8...为了防止在外面对undefined进行修改进行了一个传参;若jquery内部需要寻undefined,肯定去找参数中的undefined而不是外部的undefined。)