数组()与新数组()

新手上路,请多包涵

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

 x = Array()

x = new Array()

我应该使用哪一个?

原文由 scravy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 177
2 个回答

规范 说:

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

原文由 SLaks 发布,翻译遵循 CC BY-SA 4.0 许可协议

您应该使用文字 []此处 概述了原因。使用 Array() 构造函数可能会产生歧义,因为它接受 length 或元素列表:

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

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

您可以使用 Array 而不使用 new 运算符的原因是它在内部对构造函数做了一个常见的技巧:

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

也就是说,如果您调用 Thing() 它会为您调用 new Thing()

原文由 Ricardo Tomasi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题