有時候我們在使用for循環操作變量指派的時候,會發現莫名其妙的值都變成了最後一個的值。這種情況就是 因為我們的變量在使用的過程中被污染了,也就是被後面的值給覆寫了。那麼為了解決這種情況,我們可以使用閉包。
什麼是閉包?
閉包:即重用一個變量,又保護變量不被污染的一種機制。是指有權通路另一個函數作用域中的變量的函數。
什麼時候使用:隻要即重用一個變量,又保護變量不被污染時。
js使用閉包的案例:
for(var i=1;i<=10;i++){
(function(num){ //自我執行,并傳參(将匿名函數形成一個表達式)(傳遞一個參數)
return num; //這裡的num寫什麼都可以
})(i);
}
建立閉包的常見方式,就是在一個函數内部建立另一個函數。
閉包可以用在許多地方。它的最大用處有兩個: