【问题标题】:When would you use an ES6 Map over an Object? [duplicate]你什么时候会在对象上使用 ES6 映射? [复制]
【发布时间】:2015-11-07 10:46:17
【问题描述】:

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

【问题讨论】:

  • 嗯:map.set(aDOMElement, someData).
  • 我还没有考虑过在 Dom 元素中附加一些数据。这将非常有用。谢谢@FelixKling

标签: javascript ecmascript-6


【解决方案1】:

MDN lists a number of important differences:

  • Object 有一个原型,因此映射中有默认键。 [编辑:好老hasOwnProperty问题]
  • Object 的键是 Strings它们可以是 Map 的任何值
  • 您可以轻松获取Map 的大小,而您必须手动跟踪Object 的大小。
  • Map按插入顺序迭代其元素,而 Objects 未指定迭代顺序。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    相关资源
    最近更新 更多