我想从字面上看Dictionary<Node, Object>
这基本上是一个ES6 WeakMap,但我需要使用 IE8。
我想要的主要功能是
- 最小化内存泄漏
- 在给定节点的对象上查找 O(1)。
我的实现:
var uuid = 0,
domShimString = "__domShim__";
var dataManager = {
_stores: {},
getStore: function _getStore(el) {
var id = el[domShimString];
if (id === undefined) {
return this._createStore(el);
}
return this._stores[domShimString + id];
},
_createStore: function _createStore(el) {
var store = {};
this._stores[domShimString + uuid] = store;
el[domShimString] = uuid;
uuid++;
return store;
}
};
我的实现是 O(1) 但有内存泄漏。
实现此以最大程度地减少内存泄漏的正确方法是什么?