js閉包特色:閉包
函數套函數函數
內函數調用外函數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。