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