如何在自定义方法中接受多个参数?像:
Proxy(101, 2.02, "303");
function Proxy(args:Arguments){
Task(args);
}
function Task(var1:int, var2:Number, var3:String){
// work with vars
}
答案 0 :(得分:9)
你不能像你在问题中那样直接传递args数组。你必须单独传递args数组的每个元素。
function Proxy(... args)
{
// Simple with no error checking.
Task(args[0], args[1], args[2]);
}
<强> UDATE 强>
阅读其中一条评论后,看起来你可以逃脱:
function Proxy(... args)
{
// Simple with no error checking.
Task.apply(null, args);
// Call could also be Task.apply(this, args);
}
小心点。 apply()的性能明显慢于使用传统方法调用函数。
答案 1 :(得分:5)
您还可以使用apply(thisArg:*, argArray:*):*
对象中的Function
方法。
示例:
包{
public class Test{
public function Test(){
var a:Array=[1,"a"];
callMe.apply(this,a);
}
public function callMe(a:Number,b:String):void{
trace(a,b);
}
}
}