看一個閉包的小問題

經過一個小問題研究一下閉包

var test = (function (){
var number = 4;
return function(){
number *= 2;
console.log(number);
}
})()

test();//8
test();//16
test();//32

另外一個對比的方法閉包

var test = function (){
var number = 4;
return function(){
number *= 2;
console.log(number);
}
}

test()();//8
test()();//8
test()();//8

結論: 能夠看出這兩個地方的區別. 若是造成了閉包, 在外部是能夠進行閉包內部的更改的.
可是若是是已經結束返回的, 雖然也算閉包(test()()), 可是已是一個獨立的區域.code

能夠說第一種狀況, 是你們共用了閉包的變量(number), 但第二個則是獨立的.(若是這麼理解的話)io

相關文章
相關標籤/搜索