【问题标题】:How can I call a varargs function with an array in ActionScript?如何在 ActionScript 中使用数组调用 varargs 函数?
【发布时间】:2010-11-18 17:33:43
【问题描述】:

我需要调用一个可变参数函数:

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

但是,我正在为此动态构建参数:

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

问题是,当我以这种方式调用函数时,args 最终成为一个以 someArgs 作为第一个元素的单元素数组,而不是三元素数组。

如何以someArgs 作为参数数组调用doSomething

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

【问题讨论】:

  • 注意:这称为“参数解包”。如果您在 google 上搜索该术语以及 actionscript,您会发现一些关于此问题的讨论。 Brian 使用 .apply 的建议是正确的 IMO。
  • 恭喜,你已经在“actionscript argument unpacking”下在谷歌上排名第三 :)
  • 天哪。 SO.com 真的一定做得很好,嗯?

标签: apache-flex actionscript-3 flex3


【解决方案1】:

使用 Function.apply。

像这样:

doSomething.apply(null, someArgs);

如果 doSomething 是类的方法,则传入类而不是 null。

【讨论】:

  • 其实,不管你是否传入类/实例...AS3自动创建方法闭包,其中“this”被预先分配为始终是方法的所有者...
  • 我在发布后大约十分钟发现了这个。我想我仍然会向任何回答的人提供代表,很高兴在 SO.com 上有它。
猜你喜欢
  • 2015-08-31
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
相关资源
最近更新 更多