在jquery插件中我們經(jīng)常看到以下這段代碼
;(function ( $, window, document, undefined ){//函數(shù)體內(nèi)具體代碼})(jQuery, window,document);1、代碼最前面的分號,可以防止多個(gè)文件壓縮合并以為其他文件最后一行語句沒加分號,而引起合并后的語法錯誤。
2、匿名函數(shù)(function(){})();:由于Javascript執(zhí)行表達(dá)式是從圓括號里面到外面,所以可以用圓括號強(qiáng)制執(zhí)行聲明的函數(shù)。避免函數(shù)體內(nèi)和外部的變量沖突。
3、$實(shí)參:$是jquery的簡寫,很多方法和類庫也使用$,這里$接受jQuery對象,也是為了避免$變量沖突,保證插件可以正常運(yùn)行。
4、window, document實(shí)參分別接受window, document對象,window, document對象都是全局環(huán)境下的,而在函數(shù)體內(nèi)的window, document其實(shí)是局部變量,不是全局的window, document對象。這樣做有個(gè)好處就是可以提高性能,減少作用域鏈的查詢時(shí)間,如果你在函數(shù)體內(nèi)需要多次調(diào)用window 或 document對象,這樣把window 或 document對象當(dāng)作參數(shù)傳進(jìn)去,這樣做是非常有必要的。當(dāng)然如果你的插件用不到這兩個(gè)對象,那么就不用傳遞這兩個(gè)參數(shù)了。
5、最后剩下一個(gè)undefined形參了,那么這個(gè)形參是干什么用的呢,看起來是有點(diǎn)多余。undefined在老一輩的瀏覽器是不被支持的,直接使用會報(bào)錯,js框架要考慮到兼容性,因此增加一個(gè)形參undefined
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持武林網(wǎng)!
新聞熱點(diǎn)
疑難解答