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