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(); |
这是两个不同的变量,一个是函数引用,另一个是函数的返回值。