(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. 當即執行匿名函數必須添加「;」,否則,容易發生語法錯誤,當即執行的函數最好不省略以前和以後的分號。