細說;(function ($, undefined){ })(jQuery); 的使用:瀏覽器
1. 對於function前面的分號(;)的使用:使用分號的目的是爲了防止多個文件壓縮合並時,覺得其餘文件最後一行語句沒加分號,而引發合併後的語法錯誤。框架
2. (function ($, undefined){ })(jQuery)這是一個匿名的函數,通常js庫都採用這種自執行的匿名函數來保護內部變量。函數
3.使用undefined的緣由:性能
(1)由於undefined是window的屬性,聲明爲局部變量以後,在函數中若是再有變量與undefined作比較的話,程序就能夠不用搜索undefined到window,能夠提升程序的性能。spa
(2)undefined在版本較舊的瀏覽器是不被支持的,直接使用會報錯,js框架就要考慮到兼容性問題,故增長一個形參undefined插件
4. $實參:$是jQuery的簡寫,不少方法和類庫也使用$,這裏$接收 ,也是爲了不$變量衝突,保證插件能夠正常運行。 對象
windowwindow,document); : function這個函數還能夠傳window, document這兩個實參,這兩個作用域
實參分別接收window,document這兩個對象,window,document這兩個對象都是全局環境下的,而在函數體內的window,document實際上是局部變量,不是指所有的io
window,或是document對象。這樣作有個好處就是能夠提升性能,減小做用域的查詢時間,若是你在函數體內須要屢次調用window,或是document對象,這樣把windowfunction
或是document對象做爲參數傳進去,是很是有必要的。若是你的插件中沒有用到這兩個對象,那麼就不須要傳這兩個參數了。