(function(window, undefined) {
var jQuery = ...
...
window.jQuery = window.$ = jQuery;
})(window);
整个代码包裹在一个当即执行匿名函数内。
这样写的优势:
1. 经过写当即执行匿名函数,这样不会干扰jQuery内部的代码,也不会破坏和污染全局变量;
2. 把window当作参数传进去:
(1)能缓存window对象,使其变成局部变量,能够缩短查找做用域链,加快查找速度;
(2)使压缩比提升,方便压缩优化;
3. 把undefined当作变量传进去,可是调用的时候不传参:
(1)能防止undefined在低版本浏览器(ie8及如下)被重写;
(2)能缓存undefined,能够缩短查找undefined的做用域链;
(3)提升压缩比
4. 当即执行匿名函数必须添加“;”,否则,容易发生语法错误,当即执行的函数最好不省略以前和以后的分号。