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

时间:2015-08-14 08:31:32

标签: javascript ecmascript-6

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

1 个答案:

答案 0 :(得分:8)

MDN lists a number of important differences

  
      
  • Object有原型,因此地图中有默认键。 [编辑:好的hasOwnProperty问题]
  •   
  • Object的密钥为Strings,其中Map 可以是任意值。
  •   
  • 当您必须手动跟踪Map的尺寸时,您可以轻松获得Object的尺寸。
  •   
  • Map 按插入顺序迭代其元素,而未为Objects指定迭代顺序。
  •   

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