2.3 closure
閉包 (Closure) 是一種特殊的函式,他能夠存取被宣告當下的環境中的變數。
答案是"John"
為什麼呢?
明明makeFunc()
已經結束執行並回傳了,name
卻沒有跟著消失呢?
原因跟以下特性有關
在JavaScript中,即使在外層區塊已經回傳的狀況下,只要內層區塊還保留著一份參考,那麽外層的變數不會隨著回傳而消失,我們依然可以存取外層的變數。
當你看到一個 function 內 return 了另一個 function,通常就是有用到閉包的概念。
閉包的用意在於 :避免增加全域變數,但又能取得區域變數的值。
範例:
Last updated