Array() vs new Array()

2022-08-30 05:38:27

两者之间有什么区别(如果有的话)

x = Array()

x = new Array()

我应该使用哪一个?


答案 1

规格说:

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


答案 2

应使用文字 。此处概述了原因。使用构造函数可能不明确,因为它接受元素列表或元素列表:[]Array()length

new Array(5)   // []
new Array('5') // ['5']

[5]   // [5]
['5'] // ['5']

您可以在没有运算符的情况下使用的原因是,在内部,它与构造函数一起执行了一个常见的技巧:Arraynew

function Thing(){
    if (!(this instanceof Thing)){
        return new Thing()
    }
    // ... define object
}

也就是说,如果你打电话,它会打电话给你。Thing()new Thing()