今天來聊聊 閉包 Closure 在幹嘛以及能幹嘛
在巢狀 function 中,內部 function 仍可以外部 function 執行完畢後,取得外部 function 的變數
閉包的好處:
- 保護變數不被其他函數所用
- memory release 的時機點好掌握
1 2 3 4 5 6 7 8 9 10
| btn.addEventListener("click", clickfire);
let num = 0;
function clickfire() { num += 1; console.log(`I have been clicked ${num} times`); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| const callbackFun = clickfire(); btn.addEventListener("click", callbackFun);
function clickfire() { let num = 0;
return () => { num += 1; console.log(`I have been clicked ${num} times`); }; }
|