weak map 键被清除,置为null map中有时可以看到内容
在看理解ES6 Map时,根据书的代码敲。发现清除引用后,虽然map.has(key)已经是false,但是console.log(map)时却有两种结果。代码如下:
let map = new WeakMap(),
element = document.querySelector('.ele'),
element2 = document.querySelector('.ele2');
map.set(element, 'sss');
let value = map.get(element);
console.log(value);
// 移除该元素
element.parentNode.removeChild(element);
element = null;
console.log(map)
控制台输出结果1:
有时结果又是:
如果是添加两个键值对,然后清除其中一个的引用
let map = new WeakMap(),
element = document.querySelector('.ele'),
element2 = document.querySelector('.ele2');
map.set(element, 'sss');
map.set(element2, '222');
let value = map.get(element);
let value2 = map.get(element2);
console.log(value);
console.log(value2);
// 移除该元素
element.parentNode.removeChild(element);
element = null;
console.log(map)
// 只有一个element时, map [[Entries]]: Array(0) 有时又不是空
//WeakMap {div.ele => "sss", div.ele2 => "222"} 为什么?
// 都不能访问到
输出也是会有两种结果
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论