在进入javascript映射之前使用c
假设我有一张地图在进入javascript映射之前使用c,javascript,ecmascript-6,javascript-objects,Javascript,Ecmascript 6,Javascript Objects,假设我有一张地图 let map = new Map(); let newMap = {...map}; newMap.get(key)对我不起作用,我必须做newMap.\u c.get(key) 以前有人遇到过这个问题吗?{…foo}是一个对象扩展。它将从对象复制所有可枚举属性,就像执行object.assign({},foo)一样 问题在于映射的键/值对不是属性,而是存储在映射内的不透明数据结构中无法复制地图,因为它无法访问地图数据。您之所以看到\u c,是因为这是Map polyfil
let map = new Map();
let newMap = {...map};
newMap.get(key)
对我不起作用,我必须做newMap.\u c.get(key)
以前有人遇到过这个问题吗?
{…foo}
是一个对象扩展。它将从对象复制所有可枚举属性,就像执行object.assign({},foo)
一样
问题在于映射
的键/值对不是属性,而是存储在映射内的不透明数据结构中<代码>无法复制地图,因为它无法访问地图数据。您之所以看到\u c
,是因为这是Map polyfill用于实现私有内部数据结构的私有数据结构
要复制映射,可以使用Map
构造函数,该构造函数将iterable作为其参数,并且由于Map
实例是iterable的,因此只需执行以下操作即可
var newMap = new Map(map);
{…foo}
是一个对象排列。它将从对象复制所有可枚举属性,就像执行object.assign({},foo)
一样
问题在于映射
的键/值对不是属性,而是存储在映射内的不透明数据结构中<代码>无法复制地图,因为它无法访问地图数据。您之所以看到\u c
,是因为这是Map polyfill用于实现私有内部数据结构的私有数据结构
要复制映射,可以使用Map
构造函数,该构造函数将iterable作为其参数,并且由于Map
实例是iterable的,因此只需执行以下操作即可
var newMap = new Map(map);
设newMap=newMap(Map);设newMap=newMap(Map);