javascript – 为什么不用括号调用新的日期?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么不用括号调用新的日期?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Can we omit parentheses when creating an object using the “new” operator?7个
我刚刚看到这段代码,同时在Gmail中意外开启开发工具:
var GM_TIMING_END_CHUNK1=(new Date).getTime();

我通常会期待这样的东西,因为调用没有括号的构造函数并不常见(至少我从来没有看到它):

var GM_TIMING_END_CHUNK1=new Date().getTime();

要么

var GM_TIMING_END_CHUNK1=Date.now(); //newer browsers

这样做有什么好处吗?这是完全相同的字符数量,所以简洁不会是一个原因.

解决方法

如果不传递任何参数,则可以在JS中的括号中调用构造函数,效果是相同的.

new Date()vs new Date一样.

但是,当您想对结果对象调用方法时,它会有所作为:

new Date().getTime()工作,但是新的Date.getTime()不会因为在后一种情况下,解释器假定getTime是Date类型的方法,但这不是真的,getTime是一个实例方法 – 仅存在于构造的对象中.为了克服这个问题,您可以围绕构造函数调用括起来告诉解释器它是一个表达式:

(new Date).getTime()

这样一来,首先对表达式进行评估,并对作为Date实例的结果调用getTime.

原文链接:https://www.f2er.com/js/152189.html

猜你在找的JavaScript相关文章