2009-08-11 80 views
5

我需要调用一个函数可变参数:如何在ActionScript中使用数组调用varargs函数?

function doSomething(... args): Object { 
    // do something with each arg 
} 

不过,我动态建立的论据是:

var someArgs: Array = ['a', 'b', 'c']; 
doSomething(someArgs); 

的问题是,当我调用该函数以这种方式结束args作为第一个元素,而不是三元素数组,它是一个1元素的数组,并且someArgs作为第一个元素。

如何使用someArgs作为参数数组,调用doSomething

(对于搜索引擎,这是参数拆包)

+1

注意:这被称为“参数拆包”。如果你搜索谷歌的这个词以及actionscript,你会发现一些关于这个问题的讨论。布赖恩建议使用.apply是正确的IMO。 – 2009-08-11 18:51:27

+0

恭喜,你已经在google下的“3动作参数解包”的结果:) :) – Rydell 2009-08-12 11:51:41

+0

好主。毫无疑问,SO.com一定会做得很好? – 2009-08-12 15:05:53

回答

9

使用Function.apply。

像这样:

doSomething.apply(null, someArgs); 

如果DoSomething的是一个类的方法,通过在课堂上,而不是空。

+1

实际上,没关系,你是否通过类/实例... AS3自动创建方法关闭,其中“this”被预分配,始终是方法的所有者... – back2dos 2009-08-11 18:49:48

+0

我最终发现这个约十分钟后发布。我想我仍然会向任何回答的人提供声明,并且很高兴在SO.com上发布它。 – 2009-08-11 20:49:26

相关问题