# 閉包 https://www.bilibili.com/video/BV1YJ411R7ap?p=13&spm_id_from=pageDriver ## 基本應用 當你這function外部有用到 裡面的東西會一直存在 所以你重複調用 裡面東西會累加 ![](https://i.imgur.com/NLBXDwx.png) 因為他是同一個 你看如果有不同個 ![](https://i.imgur.com/iP18gAj.png) 記住 調用會產生新的內存 原因你覆value了 雖然你function跑完要毀掉 但你給複value所以他不能銷毀 不然你a就沒值了 ## 重點 你return的function會包含你的function跟變數 ![](https://i.imgur.com/XxDwywM.png) 記住有被引用就不刪 ## 實際應用 ![](https://i.imgur.com/lB7adbE.png) 簡化成 ![](https://i.imgur.com/qLdbJu7.png) v是外面index的 Higher Order Functions https://www.youtube.com/watch?v=d919Cwhb-14 ![](https://i.imgur.com/r1dtlvN.png) 工廠模式 先建立顏色再來文字 跟兩參數差別 可以減少參數我個人也比較喜歡這個 https://www.youtube.com/watch?v=8SwyEjmzFZw&ab_channel=Acadea.io 保持靈活性 ![](https://i.imgur.com/2t3NpAz.png) 不一樣的邏輯能用斃包來自定義 ###### tags: `javaScript`