Closure
Basic And Think:
Example:
Basic Closure(基本示範):
function House(){
var count =0; //函式內要用到的變數
function countAnimal(){ //真正要執行的函數
count ++;
console.log(count+'dogs');
}
return countAnimal //執行完後把這個函式回傳出來
}
const FunctionName = House(); //有點拆封的感覺,這時的AAA會等於內部真正執行函數
FunctionName(); // 1 dogs
//所以執行一次就會count++一次。而var count 只會做在 const AAA內行一次。 More const(就算多個Function 使用同一個House(),也不會污染變數):
House(),也不會污染變數):將參數帶入閉包中:
簡潔寫法:
範圍鏈:
Last updated