你啥时候会在对象上使用 ES6 映射? [复制]
Posted
技术标签:
【中文标题】你啥时候会在对象上使用 ES6 映射? [复制]【英文标题】: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
【参考方案1】:
MDN lists a number of important differences:
Object
有一个原型,因此映射中有默认键。 [编辑:好老hasOwnProperty
问题]Object
的键是Strings
,它们可以是Map
的任何值。 您可以轻松获取Map
的大小,而您必须手动跟踪Object
的大小。Map
按插入顺序迭代其元素,而Objects
未指定迭代顺序。
所以Map
最终是一个插入排序的 javascript 键值存储,它还允许将任何值映射到任何值,而不是将键限制为字符串。这可以极大地简化一些需要排序的代码,或者对象或其他复杂数据类型需要与其他数据相关联的代码。
【讨论】:
以上是关于你啥时候会在对象上使用 ES6 映射? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
你啥时候把 Javascript 放在 body 里,啥时候放在 head 里,啥时候使用 doc.load? [复制]