一個 function 在執行完後,其內的變數都會消亡,這個就稱之為語彙環境
1 | function sayHi() { |
閉包
而 closure 使我們可以調用其內的變數
1 | function adder(x) { |
add2 和 add10 都已經呼叫完 adder 了,
這時候我們創造了兩個環境,
分別是 x = 2 的 add2 和 x = 10 的 add10,
所以可以做出不同的加法工具。
最簡單的閉包大多有一個特性
一個 function 被另一個 function 包住,並 return。