詳解jquery插件中;(function ( $, window, document, undefined )的做用

在jquery插件中咱們常常看到如下這段代碼jquery

1
2
3
;( function  ( $, window, document, undefined ){
//函數體內具體代碼
})(jQuery, window,document);

對於不少初學者來講很難明白這表示什麼,下邊我將爲你們介紹其相應的做用。瀏覽器

一、代碼最前面的分號,能夠防止多個文件壓縮合並覺得其餘文件最後一行語句沒加分號,而引發合併後的語法錯誤。框架

二、匿名函數(function(){})();:因爲Javascript執行表達式是從圓括號裏面到外面,因此能夠用圓括號強制執行聲明的函數。避免函數體內和外部的變量衝突。jquery插件

三、$實參:$是jquery的簡寫,不少方法和類庫也使用$,這裏$接受jQuery對象,也是爲了不$變量衝突,保證插件能夠正常運行。函數

四、window, document實參分別接受window, document對象,window, document對象都是全局環境下的,而在函數體內的window, document實際上是局部變量,不是全局的window, document對象。這樣作有個好處就是能夠提升性能,減小做用域鏈的查詢時間,若是你在函數體內須要屢次調用window 或 document對象,這樣把window 或 document對象看成參數傳進去,這樣作是很是有必要的。固然若是你的插件用不到這兩個對象,那麼就不用傳遞這兩個參數了。性能

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

相關文章
相關標籤/搜索