520得票8回答
ES6 WeakMap的实际用途是什么?

在ECMAScript 6中引入的WeakMap数据结构的实际用途是什么? 由于弱映射的键会创建与其对应值的强引用,确保只要键还活着,插入到弱映射中的值就永远不会消失。因此,它不能用于记忆表、缓存或其他通常使用弱引用、带有弱值映射等的东西。 在我看来,这个特性:weakmap.set(ke...

115得票7回答
ES6 Map和WeakMap有什么区别?

查看this和this的MDN页面,似乎Maps和WeakMaps之间唯一的区别是WeakMaps缺少“size”属性。但这是真的吗?它们之间有什么区别?

35得票2回答
为什么ES6的WeakMap不可枚举?

在我重新涉足JavaScript(和相关技术)之前,我做了很多ActionScript 3,那里有一个名为Dictionary的对象,它具有像即将推出的WeakMap一样的弱键,但AS3版本仍然像常规通用对象一样可枚举,而WeakMap明确没有.keys()或.values()。 AS3版本...

34得票3回答
如何遍历 WeakMap?

JavaScript中的WeakMap出于设计考虑不允许您获取键、长度或大小。 是否仍然有可能以某种方式遍历条目? 如果不行...那么Chrome控制台是如何做到这一点的呢?

17得票3回答
ECMAScript 6中的WeakMaps是什么?

在阅读这篇描述之后:http://wiki.ecmascript.org/doku.php?id=harmony:weak_maps,我在尝试理解它,但是我没有整体的认识。它到底是关于什么的?它似乎在Firefox 6中得到了支持:http://kangax.github.com/es5-co...

16得票1回答
使用WeakMaps在Javascript中创建常规弱引用

我正在尝试使用WeakMaps做一个显而易见的事情:我想创建一个弱引用。具体来说,我想要一个事件监听器列表,但是又不想这个列表影响监听器的生命周期。 所以当我发现WeakMaps时,我非常兴奋,直到我发现它们只被用于满足一种(相当罕见的)用例,即扩展那些否则已经sealed的对象。我想不出我...

12得票2回答
为什么WeakMap的clear()方法被弃用了?

我一直在使用JavaScript中的WeakMap,在查看文档后,我意识到clear方法已被弃用/从ECMAScript 6中删除。 这是为什么呢? 为什么要强制我们做一个类似于清除函数的东西呢? clear() { this._weakmap = new WeakMap() }

11得票2回答
JavaScript(ES6)WeakMap:当将对象设置为null时的垃圾回收

我刚刚读到WeakMaps利用垃圾回收机制,通过仅使用对象作为键,将一个对象分配给null相当于删除它:let planet1 = {name: 'Coruscant', city: 'Galactic City'}; let planet2 = {name: 'Tatooine', city...

11得票1回答
对于 WeakMap 来说,“循环引用”会被视为“不可访问”,不影响垃圾回收。

function f() { const w = new WeakMap(); const o = {}; w.set(o, { v: o }); return w; } const weakMap = f(); 对于给定的代码,只有weakMap项是否被视为可达?因此,...

10得票1回答
使用JavaScript中的元素作为哈希表的键

我想要创建一个以DOM元素为键的哈希表。以下代码展示了这个过程:var hash = {}; var set = function(element, value) { hash[element] = value; }; var get = function(element) {...