假设我有两个期望...休息参数的函数
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 时,它将它们作为1参数传递(包含3)。有没有办法将它们作为3个独立的参数而不是数组传递?
答案 0 :(得分:3)
是的,使用所有函数都具有的apply方法(函数也是对象!)。所以,而不是这个:
b(myParams);
你会这样做:
b.apply(this, myParams);