js 閉包

js閉包特色:閉包

  1. 函數套函數函數

  2. 內函數調用外函數spa

閉包因爲內部函數對外部變量有引用,因此函數不會銷燬,而是在內存中,下次程序找的時候,先找內存.ip

下面拿一例子作詳解:內存

<script>作用域

function A() {io

       var i = 10;function

       var B = function () {class

        i++;變量

       alert(i);

    }

     return B;

}

var aa = A();

aa();

aa();

此處的運行結果爲11,12

</script>

第一次此處的aa()至關於執行

function () {
        i++;
        alert(i);
    }

本身的做用域沒有這個變量,所以往上找,找到10因此彈出11,第二次的時候一樣找,但因爲內部函數調用外部的這個變量i,因此變量i一直在內存中,因此第二次調用從內存中找i的值11,因此再彈出來就是12。

相關文章
相關標籤/搜索