1. ECMAScript 6 新增的“弱映射”(WeakMap)是一种新的集合类型,为这门语言带来了增强的键/ 值对存储机制。WeakMap Map 的“兄弟”类型,其 API 也是 Map 的子集。WeakMap 中的“weak”(弱), 描述的是 JavaScript 垃圾回收程序对待“弱映射”中键的方式

一、 基本 API

  1. 可以使用 new 关键字实例化一个空的 WeakMap
  2. const wm = new WeakMap();
  1. 弱映射中的键只能是 Object 或者继承自 Object 的类型,尝试使用非对象设置键会抛出 TypeError。值的类型没有限制。 如果想在初始化时填充弱映射,则构造函数可以接收一个可迭代对象,其中需要包含键/值对数组。 可迭代对象中的每个键/值都会按照迭代顺序插入新实例中:
  1. const key1 = {id: 1},
  2. key2 = {id: 2},
  3. key3 = {id: 3};
  4. // 使用嵌套数组初始化弱映射
  5. const wm1 = new WeakMap([
  6. [key1, "val1"],
  7. [key2, "val2"],
  8. [key3, "val3"]
  9. ]);
  10. alert(wm1.get(key1)); // val1
  11. alert(wm1.get(key2)); // val2
  12. alert(wm1.get(key3)); // val3