为什么`new Array()`和`Array()`在Javascript中表现相同?

时间:2015-06-01 12:04:46

标签: javascript arrays node.js

以下是示例

Array(1,2,3)
> [1,2,3]
new Array(1,2,3)
> [1,2,3]
Array(3)
> [undefined, undefined, undefined]
new Array(3)
> [undefined, undefined, undefined]

我看到了一些关于" never use Array with new"的评论。但我无法理解,因为我发现Arraynew Array似乎在Javascript中表现相同。为什么它们的行为相同?为什么一种用法比另一种更受欢迎?

我知道通常应该使用[]字面语法而不是Array,我只是想知道Array是什么..

它是构造函数吗?如果它是构造函数,为什么不使用new

1 个答案:

答案 0 :(得分:8)

  

Array作为函数而不是构造函数调用时,它   创建并初始化一个新的Array对象。因此函数调用   Array(…)等同于对象创建表达式new Array(…)   用相同的论点。

http://es5.github.io/#x15.4.1