日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JavaScript WeakMap使用詳解

瀏覽:174日期:2023-10-04 13:49:03

WeakMap 對象是一組鍵/值對的集合,其中的鍵是弱引用的。其鍵必須是對象,而值可以是任意的。

語法

new WeakMap([iterable])參數

iterableIterable 是一個數組(二元數組)或者其他可迭代的且其元素是鍵值對的對象。每個鍵值對會被加到新的 WeakMap 里。null 會被當做 undefined。

描述

WeakMap 的 key 只能是 Object 類型。 原始數據類型 是不能作為 key 的(比如 Symbol)。

Why WeakMap?

在 JavaScript 里,map API 可以通過使其四個 API 方法共用兩個數組(一個存放鍵,一個存放值)來實現。給這種 map 設置值時會同時將鍵和值添加到這兩個數組的末尾。從而使得鍵和值的索引在兩個數組中相對應。當從該 map 取值的時候,需要遍歷所有的鍵,然后使用索引從存儲值的數組中檢索出相應的值。

但這樣的實現會有兩個很大的缺點,首先賦值和搜索操作都是 O(n) 的時間復雜度( n 是鍵值對的個數),因為這兩個操作都需要遍歷全部整個數組來進行匹配。另外一個缺點是可能會導致內存泄漏,因為數組會一直引用著每個鍵和值。這種引用使得垃圾回收算法不能回收處理他們,即使沒有其他任何引用存在了。

相比之下,原生的 WeakMap 持有的是每個鍵對象的“弱引用”,這意味著在沒有其他引用存在時垃圾回收能正確進行。原生 WeakMap 的結構是特殊且有效的,其用于映射的 key 只有在其沒有被回收時才是有效的。

正由于這樣的弱引用,WeakMap 的 key 是不可枚舉的 (沒有方法能給出所有的 key)。如果key 是可枚舉的話,其列表將會受垃圾回收機制的影響,從而得到不確定的結果。因此,如果你想要這種類型對象的 key 值的列表,你應該使用 Map。

基本上,如果你要往對象上添加數據,又不想干擾垃圾回收機制,就可以使用 WeakMap。

屬性 WeakMap.length

length 屬性的值為 0。

WeakMap.prototype

WeakMap 構造器的原型。 允許添加屬性到所有的 WeakMap 對象。

WeakMap 實例

所有 WeakMap 實例繼承自 WeakMap.prototype.

屬性

WeakMap.prototype.constructor返回創建WeakMap實例的原型函數。 WeakMap函數是默認的。

方法 WeakMap.prototype.delete(key)

移除key的關聯對象。執行后 WeakMap.prototype.has(key)返回false。

WeakMap.prototype.get(key)

返回key關聯對象, 或者 undefined(沒有key關聯對象時)。

WeakMap.prototype.has(key)

根據是否有key關聯對象返回一個Boolean值。

WeakMap.prototype.set(key, value)

在WeakMap中設置一組key關聯對象,返回這個 WeakMap對象。

示例使用 WeakMap

const wm1 = new WeakMap(), wm2 = new WeakMap(), wm3 = new WeakMap();const o1 = {}, o2 = function(){}, o3 = window;wm1.set(o1, 37);wm1.set(o2, 'azerty');wm2.set(o1, o2); // value可以是任意值,包括一個對象或一個函數wm2.set(o3, undefined);wm2.set(wm1, wm2); // 鍵和值可以是任意對象,甚至另外一個WeakMap對象wm1.get(o2); // 'azerty'wm2.get(o2); // undefined,wm2中沒有o2這個鍵wm2.get(o3); // undefined,值就是undefinedwm1.has(o2); // truewm2.has(o2); // falsewm2.has(o3); // true (即使值是undefined)wm3.set(o1, 37);wm3.get(o1); // 37wm1.has(o1); // truewm1.delete(o1);wm1.has(o1); // false實現一 個帶有 .clear() 方法的類 WeakMap 類

class ClearableWeakMap { constructor(init) { this._wm = new WeakMap(init) } clear() { this._wm = new WeakMap() } delete(k) { return this._wm.delete(k) } get(k) { return this._wm.get(k) } has(k) { return this._wm.has(k) } set(k, v) { this._wm.set(k, v) return this }}規范

Specification Status Comment ECMAScript 2015 (6th Edition, ECMA-262) WeakMap Standard Initial definition. ECMAScript (ECMA-262) WeakMap Living Standard

以上就是JavaScript WeakMap使用詳解的詳細內容,更多關于JavaScript WeakMap的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品视频国产| 亚洲福利精品| 亚洲激情婷婷| 亚洲成人日韩| 亚洲一区二区三区四区电影| 亚洲欧美久久| 伊人久久大香伊蕉在人线观看热v| 红桃视频亚洲| 麻豆国产精品| 国产日韩欧美三级| 911精品国产| 999久久久免费精品国产| 日韩精品成人| 亚洲精品四区| 国产成人精品亚洲日本在线观看| 精品国产不卡| 日本精品一区二区三区在线观看视频| 三级欧美韩日大片在线看| 在线精品一区| 国产精品一区二区三区av| 国产精品手机在线播放| 欧美极品一区二区三区| 在线看片国产福利你懂的| 不卡一区2区| 色欧美自拍视频| 国产精品一线| 亚洲视频电影在线| 国产成人精品一区二区三区免费| 国产精品福利在线观看播放| 亚洲高清av| 亚洲视频国产| 中文字幕在线视频久| 在线精品国产亚洲| 欧美日韩国产观看视频| 蜜桃久久av一区| 91一区二区| 国产欧美在线| 久久国产精品久久久久久电车| 国产精品久久久一区二区| 亚洲第一精品影视| 国产精品一区二区中文字幕| 亚洲主播在线| 久久久久一区| 精品久久视频| 国产日韩欧美一区二区三区| 欧美日韩激情| 日韩在线第七页| 国产乱人伦精品一区| 日韩在线a电影| 亚洲午夜久久久久久尤物| 福利视频一区| 国产精品高清一区二区| 亚洲综合婷婷| 亚洲一区二区三区在线免费| av亚洲免费| 91成人精品视频| 欧美va天堂在线| 91精品国产调教在线观看 | 成人污污视频| 美女在线视频一区| 欧美国产中文高清| 国产精品66| 国产精品视频一区二区三区四蜜臂 | 久久香蕉网站| 国产精品玖玖玖在线资源| 国产欧美日韩影院| 欧美激情福利| 麻豆精品少妇| 国产成人免费av一区二区午夜| 欧美aa在线视频| 韩国女主播一区二区三区| 成人在线视频区| 日韩精品不卡一区二区| 日韩中文首页| 婷婷亚洲五月色综合| 手机精品视频在线观看| 天堂va在线高清一区| 欧美黑人巨大videos精品| 中文一区一区三区高中清不卡免费| 美女一区网站| 亚洲在线一区| 国产精品密蕾丝视频下载| 精品国产一级| 99国产精品| 国产精品久久777777毛茸茸| 午夜久久中文| 日韩黄色在线观看| 在线人成日本视频| 色综合视频一区二区三区日韩 | 激情综合在线| 青青草国产精品亚洲专区无| 精品理论电影在线| 狠狠久久婷婷| 久久婷婷国产| 蜜桃久久精品一区二区| 国产精品99久久精品| 美女久久一区| 日韩欧美精品| 日本va欧美va精品发布| 亚洲深夜视频| 日本午夜免费一区二区 | 亚洲香蕉网站| 麻豆精品国产91久久久久久| 天堂成人国产精品一区| 毛片在线网站| 国产调教精品| 亚洲一区二区三区中文字幕在线观看| а√在线中文在线新版| 日韩高清二区| 蜜臀久久久久久久| 一区二区小说| 久久网站免费观看| 国产伦久视频在线观看| 欧美黑人巨大videos精品| 亚洲精品欧美| 视频一区二区三区在线| 97在线精品| 国产videos久久| 国产精品麻豆成人av电影艾秋| 亚洲v天堂v手机在线| 视频一区在线播放| 午夜精品亚洲| 国产高清久久| 婷婷综合社区| 国产美女精品| 亚洲一区二区小说| 五月国产精品| 日韩激情综合| 欧美交a欧美精品喷水| 精品一区二区三区视频在线播放 | 久久久久亚洲| 亚洲大全视频| 亚洲中字黄色| 日韩国产在线观看| 国产欧美啪啪| 久久一区亚洲| 国精品产品一区| 亚洲成人不卡| 国产视频久久| 天堂av一区| 国产在线日韩精品| 97精品97| 男女男精品视频网| 国产精品115| 精品免费av在线| 久久一二三区| 久久尤物视频| 欧美色图国产精品| 亚洲精选av| 精品视频高潮| 久久香蕉精品| 国产成人精选| 亚洲三级网站| 免费在线小视频| 视频一区日韩精品| 日韩精品电影| 亚洲欧美日韩一区在线观看| 日韩激情一二三区| 香蕉久久99| 精品国产三区在线| 在线国产精品一区| 国产成人a视频高清在线观看| 亚洲一区黄色| 国产伊人久久| 日本va欧美va瓶| 色天使综合视频| 久久激五月天综合精品| 狠狠久久婷婷| 精品日韩视频| 国产一区二区三区四区大秀| 亚洲精品一级| 五月天久久久| 国产成人1区| 国产精品分类| 91麻豆精品激情在线观看最新| 精品一区在线| 群体交乱之放荡娇妻一区二区| 国产精品流白浆在线观看| 亚洲69av| 中文精品电影| 综合日韩在线| 日本欧洲一区二区| 美女尤物久久精品| 亚洲欧美久久| 老司机精品久久| 免费人成黄页网站在线一区二区| 99久久99久久精品国产片果冰| 国产欧美日韩视频在线| 四虎国产精品免费久久| 久久夜色精品| 在线精品福利| 日韩av网站在线观看| 日本成人在线不卡视频| 日韩国产欧美三级| 国产日韩欧美三级| 国产精品伊人| 六月丁香综合在线视频| 老司机免费视频一区二区三区| 久久影院一区二区三区| 高清在线一区|