WeakSet 和 WeakMap 是什么?
WeakMap是一种键值对的集合,类似于Map。不过,WeakMap与Map有几个重要的区别:
- 在WeakMap中,只有对象可以作为键。换句话说,我们不能使用基本类型(如数字,字符串,布尔值等)作为WeakMap的键。
- WeakMap的键是弱引用的。这意味着,如果一个对象只被WeakMap引用,那么这个对象可以被垃圾回收(GC)。当这个对象被垃圾回收后,它对应的键值对也会从WeakMap中自动移除。
- WeakMap不可遍历,也就是说,我们不能使用像for...of这样的循环来遍历WeakMap。 处理内存泄漏问题和管理对象私有数据等场景中有着显著的优势。