在学习 散列表的时候,想通过哈希表建立映射关系,那么简单分析一下三种创建对象的差异
三种创建对象差异
字面量方式创建
- 优势在于简洁,弊端在于,会继承 Object原型上所有的属性和方法,如不需要,性能可能较差,并且不可迭代,键必须是符合或者字符串。
Object.create(null)
- 创建一个纯粹的对象,无继承任何属性和方法。
new Map()
- 创建的可以通过 for of 迭代器,并且键可以是任何类型,并且每次插入是保证顺序的,也就是说,我们通过 for of 遍历的顺序就是你之前设置的顺序,但是对象的属性是没有顺序的概念的。即使你按照一定的顺序添加属性,使用
for...in或Object.keys()遍历时,属性的顺序并不总是按照添加顺序。这是因为对象属性的枚举顺序受到ECMAScript规范的影响,通常会先枚举数值索引的属性,然后是字符串索引,最后是符号索引,但并不保证添加的先后顺序