[Javascript] 什麼是 Closures?




如果要在 Javascript 中實現 data-hiding,可以使用 closure。
譬如說,底下的例子中 counter 是 private variable 的實現。

closure 的意思就是說,我們在函式裡面回傳了另一個函式,而因為被回傳的函式還會用到原函式中定義的東西(譬如說變數),所以有可能被使用的像是變數等等的東西,會整個跟被回傳的函式包在一起變成一個 closure,只有在被回傳的函式不再被使用的時候,所有的東西才會被釋放。

在上面的例子中,要改變變數的唯一方法就是呼叫被回傳的函式,所以例子中的 counter 變數變成一個 private 變數的實現。

看了不少 Closure 相關的文章,覺得 MDN 寫得最清楚。參閱下面的連結!

參考資料:




Be the first to comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.