用数组填充(... rest)参数?

时间:2009-03-12 00:04:37

标签: flex flash actionscript-3 actionscript

一些as3函数通过使用约定允许任意数量的参数来处理重载:

public function doSomething( ... rest ):void;

我处于这样一种情况,我需要将数组的所有值(任意长度)传递给这种类型的函数...我不知道如何做到这一点。建议?

这是一个黑客解决方案,但它不可扩展:

switch (args.length) {
case 0: doSomething(); break;
case 1: doSomething(args[0]); break;
case 2: doSomething(args[0], args[1]); break;}

2 个答案:

答案 0 :(得分:15)

结帐Function#Apply()。它允许您将参数作为数组传递。

doSomething.apply(contextObj, args);

答案 1 :(得分:1)

Here是一个非常好的提示,可以在函数之间传递rest参数。