這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)javascript中怎么自執(zhí)行函數(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
加查ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
function (window, $, undefined) { play=function(){ $("#demo").val("This is a demo."); } window.wbLogin = play; })(window, jQuery);
像上邊這樣的代碼為什么要把window, jQuery對象傳進(jìn)去?
為什么要傳入 jQuery?
通過定義一個(gè)匿名函數(shù),創(chuàng)建了一個(gè)“私有”的命名空間,該命名空間的變量和方法,不會(huì)破壞全局的命名空間。這點(diǎn)非常有用也是一個(gè) JS 框架必須支持的功能,jQuery 被應(yīng)用在成千上萬的 JavaScript 程序中,必須確保 jQuery 創(chuàng)建的變量不能和導(dǎo)入他的程序所使用的變量發(fā)生沖突。
為什么要傳入 window?
通過傳入 window 變量,使得 window 由全局變量變?yōu)榫植孔兞?,?dāng)在 jQuery 代碼塊中訪問 window 時(shí),不需要將作用域鏈回退到頂層作用域,這樣可以更快的訪問 window;這還不是關(guān)鍵所在,更重要的是,將 window 作為參數(shù)傳入,可以在壓縮代碼時(shí)進(jìn)行優(yōu)化,看看 jquery-1.6.1.min.js:
(function(a,b){})(window); // window 被優(yōu)化為 a
為什么要傳入 undefined?
在自調(diào)用匿名函數(shù)的作用域內(nèi),確保 undefined 是真的未定義。因?yàn)?undefined 能夠被重寫,賦予新的值。
一句話,使全局變量以參數(shù)形式變成自執(zhí)行函數(shù)內(nèi)部的局部變量。
至于為什么這么做,提高程序效率。為什么能提高效率,得從javascript的機(jī)制說起,所謂的scope chain作用域鏈,在當(dāng)前作用域中如果沒有該屬性(局部變量)則向上一層作用域中尋找,一直到最上層,也就是window。也就是說全局變量和下級(jí)作用域都是window的一個(gè)屬性,向下依此類推。
另外jQuery傳入后將參數(shù)寫成$可以保證在此函數(shù)內(nèi)$為jquery而不是其他類似使用$符號(hào)的庫。
undefined同理,由于沒有傳入第三個(gè)參數(shù),自然就是undefined。由于javascript中undefined是一個(gè)變量,可以被改變,所以這樣可以保證undefined判斷時(shí)的準(zhǔn)確性。有時(shí)判斷時(shí)使用typeof xxx === 'undefined'也是因?yàn)檫@個(gè)原因。
上述就是小編為大家分享的javascript中怎么自執(zhí)行函數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享名稱:javascript中怎么自執(zhí)行函數(shù)
瀏覽路徑:http://aaarwkj.com/article26/gihjcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、面包屑導(dǎo)航、外貿(mào)建站、全網(wǎng)營銷推廣、App設(shè)計(jì)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)