千鋒教育JavaScript全套視頻教程(10天學會Js,前端javascrip

閉包
閉包是函數(shù)的一種高級使用方式
閉包本質(zhì)上就是利用了函數(shù)的執(zhí)行空間不銷毀的特性、
實現(xiàn)在函數(shù)外部訪問函數(shù)內(nèi)部的私有變量
可以實現(xiàn)在一個函數(shù)中 使用 另外一個函數(shù)中 的 私有變量
閉包的優(yōu)點
1. 能夠讓函數(shù)外部訪問到函數(shù)內(nèi)部的私有變量
2. 能夠保護函數(shù)的私有變量,不會污染全局=
3. 可以利用閉包的特性,緩存數(shù)據(jù),提升代碼性能
閉包的缺點
因為對數(shù)據(jù)的持續(xù)引用,導致函數(shù)的執(zhí)行空間不銷毀,容易造成內(nèi)存泄露
解決閉包造成內(nèi)存泄露的問題
在使用完成之后,手動的給變量賦值為null,這樣內(nèi)存就會釋放了
閉包概念
例如有一個 A 函數(shù),在A 函數(shù)內(nèi)部返回一個 B 函數(shù)
在 A 函數(shù)外部有變量 C 引用這個 B 函數(shù)
B 函數(shù)內(nèi)部訪問著 A 函數(shù)內(nèi)部的私有變量
以上三個條件缺一不可
閉包應用在哪個業(yè)務中
在一個業(yè)務中如果需要操作 緩存數(shù)據(jù)的時候,用到了閉包實現(xiàn)
同時
節(jié)流、防抖、柯里化的函數(shù) 封裝中 會使用閉包
標簽: