前言
我们先从 WeakMap 的特性说起,然后聊聊 WeakMap 的一些应用场景。
特性
1. WeakMap 只接受对象作为键名
const map = new WeakMap();
map.set(1, 2);
// TypeError: Invalid value used as weak map key
map.set(null, 2);
// TypeError: Invalid value used as weak map key
2. WeakMap 的键名所引用的对象是弱引用
这句话其实让我非常费解,我个人觉得这句话真正想表达的意思应该是:
WeakMaps