中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

       javascript中(function{})()寫法解析

      時間:2024-10-24 08:23:30 JavaScript 我要投稿
      • 相關推薦

       javascript中(function{})()寫法解析

        javascript 中(function{})()這種寫法什么意思?

        最近在整理javascript 學習,發現這個問題了 ,在網上發現這么個解釋 最清楚 最明白 ;

        (function(){})()

        相當于先定義 function xx(){},后調用 xx();

        ()是最高優先級的,所以先執行function(){},

        這個定義了一個匿名函數,等于xx=function(www.diannao114.cn){}

        接著就是調用xx()了;

        給個例子

        JScript codefunctionf1(a)

        { alert(a);

        functionf2(a)

        { returnfunction(){ alert(a); }

        }這里的var x=f2 就等于把函數傳遞給了f2,然后要執行這個函數,就必須加() 也就是x();

        也就是f2()

        還是(function f2(a){

        return function(){

        alert(a);

        另外還有一個問題就是命名空間的問題

        YY = YY||{};---聲明一個叫YY的命名空間(定義一個全局的變量)

        (function() {

        YY.Lang=function() {------聲明一個叫YY.Lang的命名空間(通過全局變量的增加屬性的方式把閉包里的對象傳到全局變量中,實現代碼封裝的效果)

        isUndefined: function(o) {

        return typeof o === 'undefined';

        isString: function(o) {

        return typeof o === 'string';

        ---調用方法

        alert(YY.Lang.isString('test me'));

        這時候就有人不明了,樓上為什么要加(function() { 和)(); 最外面的這兩行,有什么用啊?

        JScript codeYY=YY||{}; //---聲明一個叫YY的命名空間(定義一個全局的變量)

        function() { YY.Lang=function() {

        //------聲明一個叫YY.Lang的命名空間(通過全局變量的增加屬性的方式把閉包里的對象傳到全局變量中,實現代碼封裝的效果) isUndefined:function(o) {returntypeofo==='undefined'; },

        isString:function(o) {returntypeofo==='string'; } }; }

        //---調用方法

        alert(YY.Lang.isString('test me'));

        疑問在這: 注釋掉這兩行有什么不一樣的呢?不就是申明嗎,為什么要用()()執行一下啊?

        答:

        (function(){})()意思是立即執行前一個括號里的function,相當于是一個匿名函數;由于里面的代碼的執行,定義了YY.Lang這個對象,所以可以執行alert(YY.Lang.isString('test me'));調用isString方法。

        但是,如果按照你寫的

        functionaa(){..};//只是定義了一個叫aa的函數,但是并沒有執行

        alert(YY.Lang.isString('test me'));//執行的時候會報找不到isString的方法。

        這么寫有什么好處??

        (function{})()的寫法有個好處,就是能很好的利用javascript的變量的可見范圍為執行腳本時節省空間。例如以下寫法1和寫法2達到的目的是一樣的,但是寫法1的由于a變量的可見范圍只是在匿名函數體內,所以a在執行完這個匿名函數后就釋放空間了。但是寫法2會一直存在該頁面中。

        寫法1:

        JScript code(function(){vara=2; alert(a); })();

        寫法2:

        JScript codevara=2; alert(a);

      【 javascript中(function{})()寫法解析】相關文章:

      IE與Firefox在JavaScript上的不同寫法小結07-22

      JavaScript中的with關鍵字07-24

      在Java中執行JavaScript代碼07-14

      Javascript中typeof 用法歸納09-27

      抽象語法樹在JavaScript中的應用08-18

      JavaScript中的三種對象10-24

      perl- javascript中class的機制05-03

      JavaScript中push(),join() 函數實例詳解09-05

      詳解JavaScript中的splice()使用方法08-20

      javascript中for/in循環以及常見的使用技巧06-24

      主站蜘蛛池模板: 国产成人一区二区三区视频免费蜜 | 97超级碰碰碰久久久观看| 香蕉久久av一区二区三区| 乳山市| 天天澡天天揉揉AV无码人妻斩| 亚洲av国产成人精品区| 粗大挺进尤物人妻一区二区| 国产麻豆放荡av激情演绎| 亚洲免费人成网站在线观看| 国产 在线播放无码不卡| 亚洲av中文aⅴ无码av不卡| 国产美女裸身网站免费观看视频| 国产黄片久久免费观看| 高清国产美女av一区二区| 在线观看国产内射视频| 一区二区三区黄色大全| 女人一级特黄大片国产精品| 99精品国产闺蜜国产在线闺蜜| 久久久www成人免费无遮挡大片| 日本久久久精品视频视频| 亚洲人成无码网站十八禁| 科技| 无码av永久免费大全| av天堂线上| 午夜无码国产18禁| 日本一区二区三区视频一| 中字亚洲国产精品一区二区| 文水县| 亚洲午夜无码视频在线播放| 国产亚洲av日韩av| 加勒比东京热综合久久| 久久这里只有精品黄色| 欧美日一本| 97人妻无码免费专区| 人妻系列无码专区久久五月天 | 97久久成人国产精品免费| 亚洲最新中文字幕一区| 中国国内新视频在线不卡免费看| 怀仁县| 日本理论片一区二区三区| 中文字幕乱码免费在线视频|