JavaScript中的new Object和new Object()有什么区别?

5

可能是重复问题:
new MyObject(); vs new MyObject;

在一些文章中,我看到了以下用于在JavaScript中创建新对象的语句:

var myObject = new Object;

而在某些站点上:

var myObject = new Object();

这两个语句之间有区别吗,还是其中一个只是缩写?


1
类似的问题:https://dev59.com/ZHA75IYBdhLWcg3w6Nr8 - Elian Ebbing
3个回答

8
没有区别。如果没有参数,使用函数作为构造函数(即使用new运算符)时,括号是可选的。当不使用new运算符调用函数时,总是需要括号。
正如另一个答案中所述,通常最好使用对象字面量。与使用Object构造函数相比,它具有以下优点:
  • 允许简洁地初始化属性(例如var foo = { bar: "cheese" };
  • 更短
  • 可能更快
  • 在(不太可能发生的)Object函数被重写时不受影响。

+1 非常好的回答,我不知道最后一件事情(在对象函数被覆盖的(不太可能的)情况下不受影响)。 - helpermethod

1

简单的回答 - 不要使用那个语法。在JavaScript中创建对象的首选方法是使用以下语法:

var myObject = {}; // creates an empty object

1
那是一个很好的答案,但是加上为什么的解释会让它更好。 - Jonathan DS
3
这不是一个很好的回答,因为它没有回答问题。应该改为一条评论。 - Quentin

1

没有区别。只是在这种特殊情况下,您可以省略()

所以 new Object()

new Object

是等效的。

顺便说一句,在使用 new Object(){} 上也没有区别。使用你喜欢的即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接