• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2.  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

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲欧美高清在线观 | 亚洲免费视频免在线观看 | 亚洲国产日韩在线人精品 | 亚洲日韩视频在线 | 亚洲日韩欧美国产 | 久久伊人精品青青草原日本 |