哪个更好,a = []或a = new Array()?

Rob*_*cks 6 flash syntax optimization performance actionscript-3

在Actionscript 3中,哪个更好?

a = [1,2,3];
Run Code Online (Sandbox Code Playgroud)

要么

a = new Array(1,2,3);
Run Code Online (Sandbox Code Playgroud)

看来用数据作为单独的参数调用Array构造函数会更慢,而另一种方法则是某种直接的内存复制.

你知道在大多数情况下哪个更好用,为什么?

cdh*_*wie 9

我更喜欢方括号,因为它更简洁易读.

后一种语法实际上会慢一些,因为你可以通过这样做来替换默认的数组构造函数Array = function() { ... };- 至少在大多数ECMAScript变体中都可以.因此,使用该表单将需要Array首先查找全局函数.


Tim*_*Tim 7

对于几乎所有情况,我更喜欢方括号,以避免混淆.

数组构造函数有两种形式:

  • Array(...)
  • Array(size:int)

第一个表单使用列出的参数作为值创建和数组,第二个表单创建具有该数量元素的数组.在您想要使用单个int初始化数组之前,这一切都很好:

  • new Array() => []
  • new Array("foo") => ["foo"]
  • new Array("foo", "bar") => ["foo", "bar"]
  • new Array(42,43) => [42,43]
  • new Array(42) => [undefined, ...undefined x 40..., undefined]

在我刚停止使用Array构造函数之前,这种不一致让我咬了几次,除了极端罕见的情况,我想要一个带有N个未定义元素的数组.


Myk*_*Myk 6

使用Array Literal(var a:Array = [])总是比说新的Array()更快,我相信这被认为是最佳实践.