最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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的評論 (共 條)

分享到微博請遵守國家法律
永州市| 建平县| 汉阴县| 江门市| 文登市| 二连浩特市| 隆德县| 平安县| 南充市| 古丈县| 资中县| 湖北省| 磴口县| 桓仁| 道孚县| 双牌县| 措美县| 龙川县| 炉霍县| 墨玉县| 蓬莱市| 张家口市| 北辰区| 郸城县| 平度市| 景东| 衡南县| 呼图壁县| 宜城市| 鄂温| 文成县| 云阳县| 承德市| 莒南县| 得荣县| 房产| 孙吴县| 大新县| 榆林市| 枞阳县| 西林县|