JavaScript - 匿名函數和閉包

來源:互聯網
上載者:User

標籤:變數   讀取   佔用   var   記憶體   win   asc   全域變數   項目   

1. 塊級範圍

/*這裡是全域環境*///立即執行函數(function () {    //這裡是塊級範圍,外部無法讀取function內部的變數,除非將變數賦給window    var a = ‘hello‘;    var b = ‘world‘;    alert(a);             //可以列印a    window.b = b;    //將b賦給全域})();alert(a);     //無法列印aalert(b);     //可以列印b

  我們一般在寫外掛程式的時候,將代碼封裝在一個立即執行函數裡,一般只將一個對象賦給全域供外部使用,這樣就避免了外掛程式內部變數汙染全域變數。

  在多人協作開發的項目中要儘可能少的使用全域變數和函數,否則很可能導致命名衝突。而將各自的代碼封裝在各自的範圍中,則互不干擾。

//程式員A的代碼(function () {    $(function () {        var a = ‘hello‘;        alert(a);    });})();//程式員B的代碼(function () {    $(function () {        var a = ‘world‘;        alert(a);    });})();//都得以執行

   在全域範圍中使用塊級範圍可以減少閉包佔用的記憶體問題,因為沒有指向匿名函數的引用。只要函數執行完畢,就可以立即銷毀其範圍鏈了。

JavaScript - 匿名函數和閉包

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.