使用Object over ES6' Map()
是否有明显的好处?我喜欢将它用于forEach
函数。在需要哈希表时选择Map()
是不好的做法吗?
答案 0 :(得分:4)
Javascript环境中Object
vs Map
的情况更多的是您是否需要通用或专用工具的问题。
Map
实际上只是一种特殊的对象(就像你在应用程序中构建的任何其他类型的对象一样。你甚至可以创建自己的Map()
构造函数来模仿ES6 Maps) 。与其他对象一样,它具有访问其功能的方法。 "专业" Map
是一个有效的键值存储。
另一方面,Object
是Javascripts本机数据类型之一,可用于各种目的(Map
是其中之一)。它不是专业的"出于任何目的。
所以,最后:
Map
作为有效的哈希表,去吧!这就是它的目标。Map
用于除键值存储之外的任何其他内容(或者,正如您所说的那样只是因为forEach
方法而),您可能需要重新考虑使用它来支持更合适的数据结构(可能是也可能不是普通的旧对象)答案 1 :(得分:0)
关于何时以及为何选择Map
优先于Object
,MDN有一个很好的解释。
总结一下: