0

我见过人们使用的代码看起来像

const STUFF_MAP = Object.create(null);

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

const STUFF_MAP = new Map();

我什么时候使用每一个?它与被编译到 es6 之前有关系吗?

4

1 回答 1

1

它与被编译到 es6 之前有关系吗?

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

除此之外,您应该更喜欢更现代的Map,这也清楚地表明了变量的用途。您将需要使用 // 方法访问集合has,而不是运算符get/括号语法/赋值。这有时会导致代码不够简洁,例如,在增加一个值时,您不能使用复合赋值运算符。setin

至于性能,应该差别不大;如果您关心,请针对您的特定情况进行基准测试。

于 2022-01-05T22:05:30.437 回答