我见过人们使用类似的代码
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/