談談我對js中閉包的理解
閉包是一個能夠訪問其他函式作用域的函式。
很顯然這樣的定義晦澀難懂,很多人都很難理解閉包的真正含義
那麼我們就用通俗一點的語言來解析一下什麼是閉包
我在知乎上看到一個比較有意思的回答:
由此我們可以通俗的理解為:
函式A的內部函式B,被函式A外部的一個變數引用時,就會形成一個閉包。
我們最常用到閉包的情況就是函式封裝
展示一下我在實際專案中遇到閉包的應用場景:
我們需要呼叫這個getFeedbackList
方法的時候,只需要formFeedbackServics.getFeedbackList()
就好啦
閉包的兩個用處是:
1.可以訪問函式內部的變數
2.讓這些變數的值一直儲存在記憶體中(同樣也正是因為這個特點會導致記憶體洩漏)
解決記憶體洩漏的方式是:
將那些不需要的變數和那些垃圾回收收不走的變數賦值為null,讓垃圾回收回收走
相關文章
- 淺談js閉包JS
- 談談我對Spring IOC的理解Spring
- 對JS閉包的理解JS
- 談談我對服務化的理解
- 談一談我對Spring Resource的理解Spring
- 談談對中斷的理解
- 談談我對服務網格的理解
- 淺談JS作用域、this及閉包JS
- [譯]理解JS中的閉包JS
- 淺談js的記憶體與閉包JS記憶體
- 亂談閉包
- js閉包的理解JS
- 談談我對物件導向以及類與物件的理解物件
- 談談我對深拷貝和淺拷貝的理解
- 談一談我對‘模板方法’設計模式的理解(Template)設計模式
- 談談你對Promise的理解Promise
- 從js中物件的建立方式和繼承,談談對原型鏈的理解JS物件繼承原型
- MVC、MVP、MVVM,談談我對Android應用架構的理解MVCMVPMVVMAndroid應用架構
- 談談我對 AIGC 趨勢下軟體工程重塑的理解AIGC軟體工程
- 閉包 | 淺談JavaScript閉包問題JavaScript
- 【搞定面試官】談談你對JDK中Executor的理解?面試JDK
- 談一談對vuex的簡單理解Vue
- 談談對MVC、MVP和MVVM的理解?MVCMVPMVVM
- 每日一問:談談對 MeasureSpec 的理解
- 對javascript閉包的理解JavaScript
- JS-閉包(closure)的理解JS
- 談談我對996.icu的看法996
- 談談你對前端效能優化的理解前端優化
- 談談對IOC及DI的理解與思考
- 談談JS中的函式劫持JS函式
- 深入理解JS閉包JS
- 淺談我對python中的monkey patchPython
- js中的閉包JS
- 面試——談談你對Java 平臺的理解面試Java
- 談一談對vue-router的簡單理解Vue
- Java面試題:請談談對ThreadLocal的理解?Java面試題thread
- 理解 JavaScript 中的閉包JavaScript
- Golang中閉包的理解Golang