Van*_*als 21 javascript ecmascript-6
如果我们可以使用javascript对象创建键/值对,那么假设是什么用于ES6新的Map()对象?
我什么时候应该使用另一个?Map是限制为值还是包含函数?
Sze*_*sui 12
结合1和2,当您遍历地图时,您将获得一组有用的键值对!
来源:另一个很好的问答交换.值得将此标记为重复.
更新:
添加到此答案以直接解决问题:
只要您需要将事物关联在一起或保留插入顺序(通用数据结构需要此操作),您应该使用地图.
您可以在不需要执行此操作时使用对象,但它们只是执行不同的操作.
更新2: OP询问功能是否也正常.是的,因为价值观也可以起作用!看看这个:
let x = new Map();
let y = () => {
console.log('derp');
}
x.set(y, "HI");
console.log(x.get(y)); //will log "HI"
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看此引用的来源,在Eloquent JavaScript的一个很好的章节中:
"每个值都有一个确定其角色的类型.在JavaScript中有六种基本类型的值:数字,字符串,布尔值,对象,函数和未定义的值."
此外,地图和对象之间的主要区别,来自MDN,标题为" 对象和地图比较 ":
同样,键可以是任何值!