我们可以在没有new关键字的情况下在ES6中使用Date对象吗?

时间:2016-05-13 13:47:33

标签: date ecmascript-6

https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla

  

添加Date对象

     

Date.prototype是普通对象(Firefox 41)

这是否意味着我们最终可以使用Object.create并调用构造函数来获取功能日期对象,而不是使用new关键字?如果是这样,怎么做。

1 个答案:

答案 0 :(得分:3)

  

这是否意味着我们最终可以使用Object.create并调用构造函数来获取功能日期对象,而不是使用new关键字?如果是这样,怎么做。

不,你不能。实际上,它是完全朝向另一个方向的步骤 - Date.prototype成为普通对象,而“魔法”发生在构造函数中。

  

因为我们正在寻找一种毫无例外地全面禁止新方式的方法。

您可以使用Reflect.construct(但它只是new运算符作为函数)或使用Date工厂方法:Date.UTC(year, month[, day[, hour[, minute[, second[, millisecond]]]]])

Hovewer,建议使用new实例化ES6内置文件,语言标准明显转向更经典的方法来创建类的实例(不能使用MapSet没有new关键字)。