关于javascript:新F和新F()之间有什么不同?

There is any different between new F and new F()?

本问题已经有最佳答案,请猛点这里访问。

想想这个问题

1
function F(){}; //This is a Constructor function

谁能告诉我两者之间有什么不同

1
var myInstance = new F;

1
var myInstance = new F();

? 无论如何,新的关键字执行后立即执行函数?


没有区别。 来自Mozilla文档:

1
new constructor[([arguments])]

括号在方括号中,这意味着它们是可选的。


没有实际的区别,如果没有传递参数来简化语法,则可以省略paranthesis。

请注意,一些验证程序(如JSLint)会在您将其保留时报告警告,因为无论参数如何,始终使用相同的语法来调用构造函数时,会更加一致。

如果你陷入这种懒惰的习惯,这个类似的例子会非常糟糕:

1
2
var one = myFunc;
var two = myFunc();

这是两个不同的变量,一个是函数引用,另一个是函数的返回值。