3

实例化对象时省略括号有什么区别(主要是性能)?

var obj1:MyObject = new MyObject();

var obj2:MyObject = new MyObject;

我喜欢吃糖的方式。

4

2 回答 2

4

这两种语法生成的 AVM 字节码绝对没有区别。

我使用abcdump查看 ABC 代码。以下是结果。

AS3

var a1:A = new A;
var a2:A = new A();

美国广播公司

...
5     findpropstrict      private::A
7     constructprop       private::A (0)
10    coerce              private::A
12    setlocal1

13    findpropstrict      private::A
15    constructprop       private::A (0)
18    coerce              private::A
20    setlocal2
...
于 2013-09-08T20:07:31.757 回答
0

应该没有区别(恕我直言)。单从推论来看,adobe 雇佣的 1337 名 SW 工程师可能会将两者编译成相同的指令,因为这两行都暗示着同样的事情。

于 2013-09-08T20:02:44.583 回答