亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2017年02月10日 10:23:38   作者:yanhangtian  
本文主要介紹了javascript自執(zhí)行函數(shù)的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
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的機(jī)制說起,所謂的scope chain作用域鏈,在當(dāng)前作用域中如果沒有該屬性(局部變量)則向上一層作用域中尋找,一直到最上層,也就是window。也就是說全局變量和下級作用域都是window的一個屬性,向下依此類推。

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

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

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • JavaScript事件流之事件處理和傳播機(jī)制深入理解

    JavaScript事件流之事件處理和傳播機(jī)制深入理解

    本文將詳細(xì)介紹JavaScript事件流的發(fā)展流程、屬性以及應(yīng)用場景,并提供一些代碼示例和引用資料,幫助讀者深入理解并應(yīng)用這一重要的前端技術(shù),希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • JavaScript針對SPA應(yīng)用的前端優(yōu)化策略概述

    JavaScript針對SPA應(yīng)用的前端優(yōu)化策略概述

    前端性能優(yōu)化是Web開發(fā)中非常重要的一環(huán),優(yōu)化能夠有效地提高網(wǎng)站的加載速度和用戶體驗,而對于SPA來說,由于其特殊的加載方式和數(shù)據(jù)交互方式,其優(yōu)化策略也具有一定的特殊性,需要詳細(xì)了解可以參考下文
    2023-05-05
  • Js sort排序使用方法

    Js sort排序使用方法

    javascript 中 array.sort() 中的參數(shù),需要傳入的是一個函數(shù),而且必須是一個函數(shù)
    2011-10-10
  • Electron 隱藏頂部菜單功能實現(xiàn)

    Electron 隱藏頂部菜單功能實現(xiàn)

    本文介紹了如何在Electron應(yīng)用中隱藏頂部菜單,具體方法是在main.js文件中添加一行代碼,這是一個簡單有效的技巧,適用于需要簡化界面的Electron應(yīng)用
    2024-09-09
  • 用戶輸入密碼的強(qiáng)度

    用戶輸入密碼的強(qiáng)度

    用戶輸入密碼的強(qiáng)度...
    2006-07-07
  • js下將金額數(shù)字每三位一逗號分隔

    js下將金額數(shù)字每三位一逗號分隔

    這篇文章主要介紹了js下將金額數(shù)字每三位一逗號分隔的相關(guān)資料,還附加了一個小功能,小數(shù)位保留兩位,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 跟我學(xué)習(xí)javascript的閉包

    跟我學(xué)習(xí)javascript的閉包

    跟我學(xué)習(xí)javascript的閉包,這篇文章的目的就是讓大家對javascript閉包有一個非常全面的了解,感興趣的小伙伴們可以參考一下。
    2015-11-11
  • 基于RequireJS和JQuery的模塊化編程——常見問題全面解析

    基于RequireJS和JQuery的模塊化編程——常見問題全面解析

    下面小編就為大家?guī)硪黄赗equireJS和JQuery的模塊化編程——常見問題全面解析。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考
    2016-04-04
  • 關(guān)于JavaScript命名空間的一些心得

    關(guān)于JavaScript命名空間的一些心得

    這篇文章主要介紹了關(guān)于JavaScript命名空間的一些心得,分別給出了頂級、多級命名空間的例子,需要的朋友可以參考下
    2014-06-06
  • JS中使用變量保存arguments對象的方法

    JS中使用變量保存arguments對象的方法

    這篇文章主要介紹了JS中使用變量保存arguments對象的方法的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論