javascript中怎么自執(zhí)行函數(shù)

這期內(nèi)容當(dāng)中小編將會給大家?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證書銷售渠道,可以享受市場價格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?

通過定義一個匿名函數(shù),創(chuàng)建了一個“私有”的命名空間,該命名空間的變量和方法,不會破壞全局的命名空間。這點非常有用也是一個 JS 框架必須支持的功能,jQuery 被應(yīng)用在成千上萬的 JavaScript 程序中,必須確保 jQuery 創(chuàng)建的變量不能和導(dǎo)入他的程序所使用的變量發(fā)生沖突。

為什么要傳入 window?

通過傳入 window 變量,使得 window 由全局變量變?yōu)榫植孔兞?,?dāng)在 jQuery 代碼塊中訪問 window 時,不需要將作用域鏈回退到頂層作用域,這樣可以更快的訪問 window;這還不是關(guān)鍵所在,更重要的是,將 window 作為參數(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 是真的未定義。因為 undefined 能夠被重寫,賦予新的值。

一句話,使全局變量以參數(shù)形式變成自執(zhí)行函數(shù)內(nèi)部的局部變量。

至于為什么這么做,提高程序效率。為什么能提高效率,得從javascript的機制說起,所謂的scope chain作用域鏈,在當(dāng)前作用域中如果沒有該屬性(局部變量)則向上一層作用域中尋找,一直到最上層,也就是window。也就是說全局變量和下級作用域都是window的一個屬性,向下依此類推。

另外jQuery傳入后將參數(shù)寫成$可以保證在此函數(shù)內(nèi)$為jquery而不是其他類似使用$符號的庫。

undefined同理,由于沒有傳入第三個參數(shù),自然就是undefined。由于javascript中undefined是一個變量,可以被改變,所以這樣可以保證undefined判斷時的準(zhǔn)確性。有時判斷時使用typeof xxx === 'undefined'也是因為這個原因。

上述就是小編為大家分享的javascript中怎么自執(zhí)行函數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:javascript中怎么自執(zhí)行函數(shù)
瀏覽路徑:http://bm7419.com/article26/gihjcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航面包屑導(dǎo)航、外貿(mào)建站、全網(wǎng)營銷推廣、App設(shè)計、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)