无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

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

2023-07-21 09:09 作者:熊大財  | 我要投稿

閉包的定義

一個函數(shù)的執(zhí)行空間以及環(huán)境中所在的局部變量。

??代碼舉例及運行結(jié)果如下:

  1. function fn(){

  2. let a=10;

  3. return function(){

  4. console.log(a);

  5. }

  6. }

  7. const closure=fn();

  8. closure();

  9. console.log(a);


能訪問到局部變量的原因:

JS的垃圾回收機制

?JS中內(nèi)存為自動分配。垃圾回收方法有引用計數(shù)和標記清理。其中引用計數(shù)原理為統(tǒng)計引用次數(shù)確定該部分內(nèi)存是否回收,由于弊端太多所以不經(jīng)常使用。而目前主流的標記清理為將未被引用的變量標記,并清理。


以上面代碼為例,全局變量closure引用為renturn的匿名函數(shù),而這個匿名函數(shù)中涉及到了對于局部變量a的引用。由于這樣一系列的引用,導致了系統(tǒng)在垃圾回收時這些內(nèi)存空間無法回收銷毀,這就能夠訪問到了。


閉包的優(yōu)點

1.局部變量能夠常駐內(nèi)存,隨時可以訪問。


2.不會污染全局變量名稱定義。


3.通過閉包可以構(gòu)造私有變量,而私有變量不能直接訪問,只能通過閉包函數(shù)訪問操作,確保了數(shù)據(jù)安全。


閉包的缺點

由于局部變量能夠常駐內(nèi)存,這就導致無法及時釋放內(nèi)存空間,導致整體內(nèi)存空間減少,也即內(nèi)存泄漏。


內(nèi)存泄漏的處理

在確定不再使用閉包時,將保存閉包引用的變量設(shè)為null。


千鋒教育JavaScript全套視頻教程(10天學會Js,前端javascrip的評論 (共 條)

分享到微博請遵守國家法律
锦州市| 宝鸡市| 凤凰县| 北流市| 沈阳市| 镇宁| 高邑县| 上虞市| 鲜城| 凤阳县| 嫩江县| 新绛县| 东海县| 溧阳市| 开封市| 陆良县| 临沧市| 宕昌县| 社会| 彭阳县| 芦山县| 乌兰县| 鄱阳县| 龙南县| 泌阳县| 藁城市| 顺义区| 凉城县| 中西区| 通州市| 富阳市| 辽宁省| 青岛市| 洛阳市| 桂平市| 顺昌县| 张家界市| 武宣县| 隆林| 桐城市| 佛山市|