使用…(rest)参数将参数从数组传递到Actionscript方法
我的问题是这个问题的弹性转换: 也就是说,我在一些Actionscript代码中有一个数组,我需要将数组中索引的每个对象传递到一个方法使用…(rest)参数将参数从数组传递到Actionscript方法,actionscript,methods,arguments,Actionscript,Methods,Arguments,我的问题是这个问题的弹性转换: 也就是说,我在一些Actionscript代码中有一个数组,我需要将数组中索引的每个对象传递到一个方法方法(…参数) 下面是一些代码,以明确说明: private function mainMethod():void{ var myArray:Array = new Array("1", "2", "3"); // Call calledMethod and give it "1", "2" and "3" as arguments } pri
方法(…参数)
下面是一些代码,以明确说明:
private function mainMethod():void{
var myArray:Array = new Array("1", "2", "3");
// Call calledMethod and give it "1", "2" and "3" as arguments
}
private function calledMethod(...arguments):void{
for each (argument:Object in arguments)
trace(argument);
}
有什么方法可以按照注释的建议执行吗?编译器很难猜出您想要的是什么,是要传递一个数组类型的参数,还是要传递该数组的元素。编译器采用假设一。通过遍历函数对象本身是可能的。对其调用apply()将起作用:
private function mainMethod():void
{
var myArray:Array = new Array("1", "2", "3");
// call calledMethod() and pass each object in myArray individually
// and not as an array
calledMethod.apply( this, myArray );
}
private function calledMethod( ... args ):void
{
trace( args.length ); // traces 3
}
有关更多信息,请查看参数是该方法等待的一个对象。可以通过参数传递多个元素或(在本例中)一个数组 例如:
function mainMethod():void
{
//Passing parameters as one object
calledMethod([1, 2, 3]);
//Passing parameters separately
calledMethod(1, 2, 3);
}
function calledMethod(...args):void
{
for each (var argument in args)
{
trace(argument);
}
}
mainMethod();
希望有帮助,
Rob没有办法回避这个问题吗?对不起,这没用。我的问题专门解决了将数组中包含的对象传递给这种方法的问题。这意味着您无法在方法调用中显式显示这些对象。太棒了!几天前,我自己也遇到了这个问题。