Kev*_*tre 6 javascript hashmap weakmap
我想用DOM元素作为键创建一个哈希.这由以下代码说明:
var hash = {};
var set = function(element, value) { hash[element] = value; };
var get = function(element) { return hash[element]; };
set(document.getElementById('foo'), 'bar');
get(document.getElementById('foo')); // returns 'bar'
Run Code Online (Sandbox Code Playgroud)
如何确保哈希映射到每个哈希值的唯一值Element?
请注意,我不能将原始ID字符串用作键,因为Element可以传入任意字符串,包括那些没有id的字符串.
在JavaScript中直到ES 6,只能将字符串用作键.如果要使用DOM元素,请使用两个链接列表或WeakMap对象.后一种方法的一个好处是它不会导致内存泄漏.
适用于您的示例:
var hash = new WeakMap();
hash.set(document.getElementById('foo'), 'bar');
hash.get(document.getElementById('foo')); // returns 'bar'
Run Code Online (Sandbox Code Playgroud)
编写时,WeakMap仅支持以下浏览器:
--js-flags=--harmony以启用它).在所有其他浏览器中,可以通过加载WeakMap.js polyfill来实现WeakMap支持.
| 归档时间: |
|
| 查看次数: |
1759 次 |
| 最近记录: |