您何时在对象上使用ES6地图?

sil*_*513 4 javascript ecmascript-6

我一直在关注MDN上的新ES6文档,我无法找到普通对象不起作用的Map对象的真实世界用途.有没有人有地图的任何用例,并解释为什么一个对象在那种情况下不起作用?

dec*_*eze 8

MDN列出了许多重要的差异:

  • An Object有一个原型,因此地图中有默认键.[编辑:好老hasOwnProperty问题]
  • a的键ObjectStrings,它们可以是a的任何值Map.
  • Map必须手动跟踪大小,才能轻松获得大小Object.
  • A Map 按插入顺序迭代其元素,而未指定迭代顺序Objects.

因此,a Map最终是Javascript 的插入顺序键值存储,它还允许将任何值映射到任何值,而不是将键限制为字符串.这可以大大简化一些代码,其中排序很重要,或者对象或其他复杂数据类型需要与其他数据相关联.