JavaScript&JQ 004_JS閉包

來源:互聯網
上載者:User

JavaScript很多書籍都講的唧唧歪歪一大堆,不知道講些什麼

1、什麼是閉包
-- 函數嵌套函數
-- 內建函式可以引用外部函數的參數和變數
-- 參數和變數不會被記憶體回收機制回收
 <script type="text/javascript">         //1.1函數嵌套函數     function Rabbit()     {       function shortHairGirl()       {                }      }      //1.2內建函式可以引用外部函數的參數和變數     function Rabbit2()     {      var name="rabbit";//Rabbit2()執行完畢的時候,js記憶體回收行程並沒有對其回收       //因為shortHairGirl()對其還有引用      function shortHairGirl()      {        alert(name);      }       return shortHairGirl;     }      var loveShortHairGirl=Rabbit2();     //loveShortHairGirl();     //1.3參數和變數不會被記憶體回收機制回收      function GC()     {        var girl="我是短髮美女";     }     GC();//當GC()執行完畢的時候,變數girl就會被js記憶體回收行程,節省記憶體    </script>

 2、閉包的好處

       --希望一個變數長期駐紮在記憶體當中,避免全域變數的汙染

//2.1沒有使用閉包     var girlAge=23;     function  IncAge()     {       girlAge++;       alert("短髮美女的芳齡是:"+girlAge);     }     //IncAge();//24     //IncAge();//25           function  IncAge2()     {      var girlAge=22;       girlAge++;       alert("短髮美女的芳齡是:"+girlAge);     }     //IncAge2();//23     //IncAge2();//23               function RabbitLoveGirl()     {         var age=22;         return function(){           age++;           alert(age);         }     }     var girlAge=new RabbitLoveGirl();     //girlAge();     //girlAge();          //如果一個函數放在()中,那麼就變成了函數運算式     (      function aaa(){        alert(2);      }     )();      (function(){       alert("shit");     })();          var age=(function(){      var a=10;      return function(){       a++;       alert(a);      }     })();     age();     age();    </script>

3、 閉包需要注意的地方【IE下可能引發記憶體泄露】,就不舉例了。

4、望眼欲穿,不見一個短髮女孩出現。於是乎,我來到了海邊.....   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.