1.閉包的產生
在js里,當存在函式嵌套,并且在函式的內部參考了函式外部的資料的時候,閉包就產生了,
例如:
function fn(){
var a = 1
function fn1(){
console.log(a)
}
}
2.閉包的特性
閉包內的資料在函式執行完之后不會被垃圾回收器回收,因此可以延長部分資料的生命周期,同時使函式外部可以對函式內部的資料進行相關的操作,但是這一特性也會引起一些問題,比如當閉包無用之后但是沒有及時回收,就會產生記憶體溢位和記憶體泄露,
3.記憶體溢位
當程式運行所需的記憶體超出了剩余可分配的記憶體時,就會產生記憶體溢位,是一種程式運行出現的錯誤,
4.常見的記憶體泄露
1.意外的全域變數
2.沒有及時清理的計時器和回呼函式
3.閉包
因此,閉包雖然好用,但是可以不用的時候盡量不要用,用了的話要及時清除,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/305214.html
標籤:其他
上一篇:JavaScript中的函式
下一篇:案例: 購物車渲染
