詳解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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM