调整字号

new Date 与 new Date()

今天在某个地方看到了 new Date 的写法,也就是创建对象时,省略了后面的一对括号,这种写法不太常见,我也很疑惑,到底跟 new Date() 有没有区别?于是就去研究了一下。

答案就是:没有区别,这是 new 运算符的一种特殊情况,如果创建对象时不需要传递参数,那么括号就可以省略。不过 JSLint 遇到这种写法还是会报错的。

如果后面紧跟着就调用该对象的方法,那么就不同了:

var o = new Date().toString();
var p = new Date.toString();

后一种写法会报错,因为 Date.toString 被当成了构造函数的名字,而它不是个构造函数。

所以老这么写也是不太安全的,我觉得平时还是尽量加上括号比较好一点,就像别人所说,这只是一个语法糖(syntactic sugar)而已。

参考:Stack Overflow

还没有评论,沙发空缺中……
flight