【发布时间】:2014-08-15 08:07:36
【问题描述】:
在 ES6 中创建地图,你应该说Map() 还是new Map()?
两者在node --harmony 中似乎都可以正常工作。
草案规范说“Map 构造函数是 %Map% 内在对象和全局对象的 Map 属性的初始值。当 Map 作为函数而不是构造函数调用时,它会使用以下方法初始化其 this 值支持 Map.prototype 内置方法所需的内部状态。”这似乎也表明它们都应该起作用。
鉴于此,Map() 看起来会更好,因为它更短,尽管这是一个主观判断;客观上它们似乎可以互换?
【问题讨论】:
-
这很像 Date() 或 new Date() 的问题。这取决于您将尝试做什么。
-
@Wayne 好的,有人可能会尝试做哪些事情,使一种用法比另一种更可取?
-
文档建议人们将始终使用 new MAP() ... developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… ...
-
Date() 具有像现在这样的方法,无需创建新的日期对象即可使用。 Map() 和 Array() 都用于保存数据,这不是在全局对象中完成的,而是由构造函数创建方法。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… ... stackoverflow.com/questions/1114024/… ... 方法是返回函数。
标签: javascript ecmascript-harmony ecmascript-6