[JS] 闭包与内存泄漏
生活随笔
收集整理的這篇文章主要介紹了
[JS] 闭包与内存泄漏
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
-
一句話總結(jié)閉包:函數(shù)里套函數(shù),函數(shù)返回函數(shù)。
-
內(nèi)存泄漏:每次外部函數(shù)執(zhí)行的時候,外部函數(shù)的引用地址不同,都會重新創(chuàng)建一個新的地址。但凡是當前活動對象中有被內(nèi)部子集引用的數(shù)據(jù),那么這個時候,這個數(shù)據(jù)不刪除,保留一根指針給內(nèi)部活動對象。
-
閉包內(nèi)存泄漏為: key = value,key 被刪除了 value 常駐內(nèi)存中。
function foo() {let a = 10function show() {console.log(++a)}return show
}
let f = foo()
f() //11
f() //12
f() //13
- 原本a應該被銷毀,而反復調(diào)用f時,a的值一直被保留。
- 直接調(diào)用foo(),啥也不輸出。
foo()()這樣寫,a在函數(shù)結(jié)束時被銷毀,不造成內(nèi)存泄漏。
foo() //啥也沒有
foo()() //11
foo()() //11
總結(jié)
以上是生活随笔為你收集整理的[JS] 闭包与内存泄漏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧莱雅红白双管面霜和眼霜有什么区别?
- 下一篇: CSRF攻击与防御