es6 新增数据类型weakMap,在实际项目开发中怎么用? 请老师们解答一下具体适用场景.
一般来说会很少用到 weakMap
,大部分情况都用到的是 map
。
不过确定自己需要的是弱引用,也就是说想要 set
进来的数据,在其他地方释放的时候可以被GC回收,这是时候可以选择 weakMap
。
具体可以看阮一峰老师的 Set 和 Map 数据结构 - ECMAScript 6入门。
怎么用看文档。适用场景可以参考阮一峰大佬的文章,里面有提到,实际开发中基本不太会用到,尤其在有了Vue/React/Angular,反正我没有在实际项目中使用过。
一个典型应用场景是,在网页的 DOM 元素上添加数据,就可以使用WeakMap结构。当该 DOM 元素被清除,其所对应的WeakMap记录就会自动被移除。
13 回答12.8k 阅读
7 回答1.9k 阅读
9 回答1.7k 阅读✓ 已解决
6 回答976 阅读
3 回答1.1k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
plyr.js源码中有段代码,用
WeakMap
来存储视频字幕的元信息,并且和轨道相绑定。我猜测
WeakMap
使用的原因是因为视频流的轨道信息本身是会在某个时刻被清除,然后垃圾回收掉。所以字幕的元信息也应该随着轨道的清除而清除。所以从第三方库的实际应用场景来说,
WeakMap
用来存储会随时清除,并且保证垃圾回收能够覆盖的一些对象。