亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 幫助中心 > 正文

ES6 系列之 WeakMap的使用示例

2024-07-09 22:41:20
字體:
來源:轉載
供稿:網友

前言

我們先從 WeakMap 的特性說起,然后聊聊 WeakMap 的一些應用場景。

特性

1. WeakMap 只接受對象作為鍵名

const map = new WeakMap();map.set(1, 2);// TypeError: Invalid value used as weak map keymap.set(null, 2);// TypeError: Invalid value used as weak map key

2. WeakMap 的鍵名所引用的對象是弱引用

這句話其實讓我非常費解,我個人覺得這句話真正想表達的意思應該是:

WeakMaps hold "weak" references to key objects,

翻譯過來應該是 WeakMaps 保持了對鍵名所引用的對象的弱引用。

我們先聊聊弱引用:

在計算機程序設計中,弱引用與強引用相對,是指不能確保其引用的對象不會被垃圾回收器回收的引用。 一個對象若只被弱引用所引用,則被認為是不可訪問(或弱可訪問)的,并因此可能在任何時刻被回收。

在 JavaScript 中,一般我們創建一個對象,都是建立一個強引用:

var obj = new Object();

只有當我們手動設置 obj = null 的時候,才有可能回收 obj 所引用的對象。

而如果我們能創建一個弱引用的對象:

// 假設可以這樣創建一個var obj = new WeakObject();

我們什么都不用做,只用靜靜的等待垃圾回收機制執行,obj 所引用的對象就會被回收。

我們再來看看這句:

WeakMaps 保持了對鍵名所引用的對象的弱引用

正常情況下,我們舉個例子:

const key = new Array(5 * 1024 * 1024);const arr = [ [key, 1]];

使用這種方式,我們其實建立了 arr 對 key 所引用的對象(我們假設這個真正的對象叫 Obj)的強引用。

所以當你設置 key = null 時,只是去掉了 key 對 Obj 的強引用,并沒有去除 arr 對 Obj 的強引用,所以 Obj 還是不會被回收掉。

Map 類型也是類似:

let map = new Map();let key = new Array(5 * 1024 * 1024);// 建立了 map 對 key 所引用對象的強引用map.set(key, 1);// key = null 不會導致 key 的原引用對象被回收key = null;

我們可以通過 Node 來證明一下這個問題:

// 允許手動執行垃圾回收機制node --expose-gcglobal.gc();// 返回 Nodejs 的內存占用情況,單位是 bytesprocess.memoryUsage(); // heapUsed: 4640360 ≈ 4.4Mlet map = new Map();let key = new Array(5 * 1024 * 1024);map.set(key, 1);global.gc();process.memoryUsage(); // heapUsed: 46751472 注意這里大約是 44.6Mkey = null;global.gc();process.memoryUsage(); // heapUsed: 46754648 ≈ 44.6M// 這句話其實是無用的,因為 key 已經是 null 了map.delete(key);global.gc();process.memoryUsage(); // heapUsed: 46755856 ≈ 44.6M

如果你想要讓 Obj 被回收掉,你需要先 delete(key) 然后再 key = null:

let map = new Map();let key = new Array(5 * 1024 * 1024);map.set(key, 1);map.delete(key);key = null;

我們依然通過 Node 證明一下:

node --expose-gcglobal.gc();process.memoryUsage(); // heapUsed: 4638376 ≈ 4.4Mlet map = new Map();let key = new Array(5 * 1024 * 1024);map.set(key, 1);global.gc();process.memoryUsage(); // heapUsed: 46727816 ≈ 44.6Mmap.delete(key);global.gc();process.memoryUsage(); // heapUsed: 46748352 ≈ 44.6Mkey = null;global.gc();process.memoryUsage(); // heapUsed: 4808064 ≈ 4.6M
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久综合久久美利坚合众国| 久久精品小视频| 欧美精品一区三区| 夜夜嗨av色综合久久久综合网| 久久99国产精品久久久久久久久| 精品在线观看国产| 欧美日韩一区二区精品| 在线精品高清中文字幕| 亚洲人午夜色婷婷| 日韩精品小视频| 欧美日韩国产二区| 国产精品入口夜色视频大尺度| 欧美孕妇毛茸茸xxxx| 日韩国产欧美区| 精品国产1区2区| 久久精品视频中文字幕| 国产精品自拍偷拍| 在线播放日韩欧美| 亚洲韩国青草视频| 国产亚洲日本欧美韩国| 色综合老司机第九色激情| 久久久久久久久久国产精品| 久久久中精品2020中文| 91高清免费视频| 国产一区二区三区直播精品电影| 欧美日韩视频免费播放| 国产精品爽黄69| 欧美电影免费在线观看| 亚洲免费中文字幕| www.欧美精品一二三区| 日韩免费黄色av| 欧美电影在线观看高清| 国产福利视频一区二区| 久久精品视频免费播放| 日韩在线中文视频| 欧洲美女7788成人免费视频| 国模吧一区二区三区| 91色在线视频| 精品国偷自产在线视频99| 国产成人综合一区二区三区| 欧美超级免费视 在线| 日本午夜在线亚洲.国产| 欧美国产日韩xxxxx| 国产精品成av人在线视午夜片| 中文日韩在线观看| 日韩欧美高清视频| 国产亚洲视频在线| 视频一区视频二区国产精品| 久久这里有精品| 欧美韩国理论所午夜片917电影| 国产精品成人在线| 欧美激情极品视频| 成人黄色中文字幕| 欧美大成色www永久网站婷| 日韩有码在线电影| 91久久精品美女高潮| 好吊成人免视频| 国产精品爽爽ⅴa在线观看| 精品久久久久久久中文字幕| 九九热精品视频国产| 亚洲另类欧美自拍| 欧美激情xxxx| 欧美视频在线免费看| 午夜美女久久久久爽久久| 日韩中文字幕精品| 欧美最猛性xxxxx免费| 亚洲va欧美va国产综合久久| 日韩国产在线看| 国产91ⅴ在线精品免费观看| 国产精品激情av电影在线观看| 国产精品青青在线观看爽香蕉| 亚洲a∨日韩av高清在线观看| 国产一区二区三区三区在线观看| 亚洲一区二区三区777| 欧美视频在线视频| 久久久国产一区二区三区| 成人激情视频免费在线| 在线观看国产欧美| 97色在线播放视频| 少妇精69xxtheporn| 亚洲欧美在线磁力| 欧美精品久久久久久久免费观看| 日韩一级裸体免费视频| 最近更新的2019中文字幕| 精品国产精品三级精品av网址| 日韩中文字幕免费视频| 日韩欧美在线看| 中文字幕少妇一区二区三区| 亚洲精品国产综合久久| 欧美午夜精品久久久久久浪潮| 欧美一区二区三区……| 久久久精品国产一区二区| 欧美激情国内偷拍| 亚洲国产成人爱av在线播放| 亚洲高清久久久久久| 日韩www在线| 欧美日韩激情视频8区| 17婷婷久久www| 亚洲最大福利视频网站| 久久久视频精品| 日韩av色综合| 国产大片精品免费永久看nba| 日韩在线视频观看正片免费网站| 国产美女久久精品| 国产欧美在线视频| 91在线精品视频| 精品久久久久久中文字幕一区奶水| 久久精品在线播放| 成人国产精品av| 国产亚洲成av人片在线观看桃| 久久精品成人欧美大片| 欧美激情一级二级| 97超碰蝌蚪网人人做人人爽| 久久精品视频在线| 欧美一级淫片videoshd| 成人精品在线视频| 国产欧美 在线欧美| 欧美一区二区三区免费视| 91精品国产综合久久香蕉的用户体验| 国产成人精彩在线视频九色| 日韩久久免费视频| 久久精品91久久香蕉加勒比| 中文字幕亚洲欧美日韩2019| 欧美xxxx14xxxxx性爽| 欧美大片在线看| 91精品国产高清久久久久久| 最近中文字幕日韩精品| 亚洲欧美日韩精品久久奇米色影视| 亚洲少妇激情视频| 国产欧美日韩精品专区| 久久久国产精品视频| 成人免费观看网址| 国产精品色视频| 成人黄色午夜影院| 成人激情春色网| www亚洲精品| 欧美丝袜一区二区三区| 国外色69视频在线观看| 色婷婷亚洲mv天堂mv在影片| 永久免费精品影视网站| 4k岛国日韩精品**专区| 黑人巨大精品欧美一区二区一视频| 久久精品视频va| 久色乳综合思思在线视频| 岛国精品视频在线播放| 亚洲天堂第一页| 国产精品黄色av| 欧美激情精品久久久久久免费印度| 精品久久久久久久久久ntr影视| 欧美精品18videos性欧美| 国外色69视频在线观看| 欧美特黄级在线| 亚洲精品一区二三区不卡| 亚洲精品日产aⅴ| 亚洲小视频在线观看| 日韩精品视频观看| 深夜福利亚洲导航| 国产日韩精品视频| 日韩精品视频观看| 亚洲综合中文字幕在线| 日韩最新中文字幕电影免费看| 色狠狠久久aa北条麻妃| 欧美性猛交xxxx偷拍洗澡| 精品国产乱码久久久久酒店|