Actionscript 3 重新通过休息参数?

Actionscript 3 重新通过休息参数?,actionscript-3,Actionscript 3,假设我有两个函数期望…rest参数 private function a(...myParams):void { trace(myParams.length); // returns 3 parameters 1,2,3 b(myParams); } private function b(...myParams):void { trace(myParams.length); // returns 1 parameter (array) [1,2,3] } a(1,2,3

假设我有两个函数期望…rest参数

private function a(...myParams):void
{
    trace(myParams.length); // returns 3 parameters 1,2,3
    b(myParams);
}
private function b(...myParams):void
{
    trace(myParams.length); // returns 1 parameter (array) [1,2,3]
}

a(1,2,3);

函数a获取参数1,2,3的数组,但当它将它们传递给函数b时,它将它们作为一个参数传递(一个包含参数3的数组)。是否有办法将它们作为3个单独的参数而不是数组传递?

是的,使用所有函数都具有的应用方法(函数也是对象!)。因此,不是这样:

b(myParams);
您将执行以下操作:

b.apply(this, myParams);

在ActionScript中,函数也是对象。所有函数都附加到它们的一个方法称为apply。此方法允许您在指定的上下文(即第一个参数)中运行函数,并使用所需的参数(即第二个参数)。只要您有一个数组,但需要将该数组作为单个参数传递给您可以使用的函数apply。IIRC这对于所有基于ECMAScript的语言都是通用的,比如Javascript。