1. 程式人生 > >詳解jquery外掛中;(function ( $, window, document, undefined )的作用

詳解jquery外掛中;(function ( $, window, document, undefined )的作用

詳解jquery外掛中;(function ( $, window, document, undefined )的作用

在jquery外掛中我們經常看到以下這段程式碼

1

2

3

;(function ( $, window, document, undefined ){

//函式體內具體程式碼

})(jQuery, window,document);

對於很多初學者來說很難明白這表示什麼,下邊我將為大家介紹其相應的作用。

1、程式碼最前面的分號,可以防止多個檔案壓縮合並以為其他檔案最後一行語句沒加分號

,而引起合併後的語法錯誤

2、匿名函式(function(){})();:由於Javascript執行表示式是從圓括號裡面到外面,所以可以用圓括號強制執行宣告的函式。避免函式體內和外部的變數衝突。

3、$實參:$是jquery的簡寫,很多方法和類庫也使用$,這裡$接受jQuery物件,也是為了避免$變數衝突,保證外掛可以正常執行。

4、window, document實參分別接受window, document物件,window, document物件都是全域性環境下的,而在函式體內的window, document其實是區域性變數,不是全域性的window, document物件。這樣做有個好處就是可以提高效能,減少作用域鏈的查詢時間,如果你在函式體內需要多次呼叫window 或 document物件,這樣把window 或 document物件當作引數傳進去

,這樣做是非常有必要的。當然如果你的外掛用不到這兩個物件,那麼就不用傳遞這兩個引數了。

5、最後剩下一個undefined形參了,那麼這個形參是幹什麼用的呢,看起來是有點多餘。undefined在老一輩的瀏覽器是不被支援的,直接使用會報錯,js框架要考慮到相容性,因此增加一個形參undefined