在进入 javascript 地图之前使用 _c

Using _c before get in javascript map

假设我有一张地图

let map = new Map();
let newMap = {...map};

newMap.get(key) 对我不起作用,我必须做 newMap._c.get(key)

有没有人遇到过这个问题?

{...foo}是一个对象传播。它将从一个对象中复制所有可枚举的属性,就像 Object.assign({}, foo).

问题是 Map 的 key/values 对不是属性,它们是映射内不透明数据结构中的存储。 ... 无法复制地图,因为它不访问地图数据。您看到 _c 的原因是因为这是您的 Map polyfill 用来实现私有内部数据结构的私有数据结构。

要复制 Map,您可以使用 Map 构造函数,它以一个可迭代对象作为参数,并且由于 Map 实例是可迭代的,您可以简单地执行

var newMap = new Map(map);