javascript - 与 Map 相比,使用 Object.create(null) 有什么优势吗?

标签 javascript dictionary javascript-objects es6-map

我见过人们使用类似的代码

const STUFF_MAP = Object.create(null);

STUFF_MAP 希望建议仅像 map 一样使用,所以我理解为什么使用 Object.create(null){}(删除可能导致冲突等的属性),但是不使用有什么好处

const STUFF_MAP = new Map();

我什么时候会使用每一个?这与编译为 es6 之前的版本有关吗?

最佳答案

Does it have to do with being compiled to pre es6?

是的,Object.create(null) 是 ES5,如果您需要支持旧浏览器,则不需要 Map 的填充。

除此之外,您应该更喜欢更现代的Map,它也清楚地表明了变量的用途。您需要使用 has/get/set 方法访问集合,而不是 in 运算符/括号语法/任务。这有时会导致代码不那么简洁,例如对于 incrementing a value您不能使用复合赋值运算符。

就性能而言,应该没有太大区别;如果您关心,请针对您的特定情况制定基准。

关于javascript - 与 Map 相比,使用 Object.create(null) 有什么优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70598824/

相关文章:

javascript - 从子对象引用父对象,而不将对象文字分配给变量

javascript - 如何在gridview中的c#后面的代码中访问html输入类型的文本

C++ typedef a std::pair 然后使用typedef声明一个映射

c++ - std::map::operator[] 行为异常

条形宽度的 Javascript 百分比计算

javascript - 为什么当我在另一个函数完成后调用函数时,它会调用所有之前的函数?

python - 从字典列表中获取新列表

javascript - 聚合 JavaScript 数组的对象值?

javascript - 如何使用变量来选择要搜索的对象的属性?

javascript - 如何通过存储在索引处的嵌套对象属性对对象数组进行排序?