1

function ClassA(){
  this.value = 5;
}

var obj1 = new ClassA;
var obj2 = new ClassA();

console.log(obj1.value);
console.log(obj2.value);

两者都在控制台中打印“5”。两种方式之间有什么区别(除了包含构造函数的参数)?

4

2 回答 2

4

括号是可选的 - 如果您没有要传递的任何构造函数参数,则可以省略它们。

奇怪的是,分号也(有时)是可选的,这要归功于自动分号插入(来源更多)。这在今年早些时候引发了一场漫长的辩论,并引起了Douglas Crockford(JSON/JSLint 发明者,JS 大师)的回应。

于 2012-11-14T09:24:18.180 回答
1

根本没有任何区别。

如果没有参数,并且有一个new,那么括号是可选的。

于 2012-11-14T09:24:28.790 回答