如果在Javascript中声明没有New的数组会发生什么?

Dav*_*iov 16 javascript

可能重复:
JavaScript中的Array(1)和新Array(1)之间有什么区别?

在javascript中,这两者有何不同?

var arr = Array();  
var arr2 = new Array();
Run Code Online (Sandbox Code Playgroud)

如果根据JS标准它们是相同的,那么是否有任何浏览器以不同方式处理这两种方式?

whi*_*ark 17

根据ECMA-262版本5.1:

15.4.1作为函数调用的数组构造函数

当Array作为函数而不是构造函数调用时,它会创建并初始化一个新的Array对象.因此,函数调用Array(...)等效于new Array(...)具有相同参数的对象创建表达式.

第11.1.4节(它很长,所以我不会引用它)也表明数组文字直接对应于new Array(...)构造函数调用.

  • ...答案是...它们是等效的(根据规范)。正确的? (2认同)
  • @Jared:确切地说. (2认同)