我发现这段代码我不太明白。
var Vehicle = function Vehicle(color) {
this.constructor; // function Vehicle()
this.color = color;
}
(new Vehicle("tan")).color; // "tan"
为什么要(new Vehicle("tan")).color
为什么要额外()
我在此博客中找到了代码http://pivotallabs.com/javascript-constructors-prototypes-and-the-new-keyword/
答案 0 :(得分:1)
它没有做任何事情。 new
运算符优先于函数调用(()
部分),因此与键入new Vehicle("tan").color
相同。但是,它确实使代码更具可读性,我建议使用它。
要自己演示这里发生了什么,请尝试使用语法来查看会发生什么:
new Date().getTime() //1397073088727
(new Date()).getTime() //1397073088727
new (Date()).getTime() //error
new (Date)().getTime() //1397073088727
Date().getTime() //error
new (Date().getTime()) //error