如何做到这一点
function foo(x:*, ...args):* {
}
function bar(x:*, ...args):* {
foo(x, args); // how to expand args ? the args is an array now
}
如何扩展args?当我致电bar(1,2,3)
时,我希望它致电foo(1,2,3)
,但会致电foo(1,[2,3])
答案 0 :(得分:4)
function bar(x:*, ...args):* {
args.unshift( x ); //add x to the front of the args array
foo.apply( <scope>, args );
}
如果foo
和bar
在同一个班级中宣布<scope>
应为this
,否则它应该是宣布foo
的类的实例,如果foo
是全局函数,则应为null
foo.apply( this, args );
//-- or --
foo.apply( myFooInstance, args );
//-- or --
foo.apply( null, args );
答案 1 :(得分:-1)
我相信这部分回答了你的问题: http://www.flex888.com/574/can-i-have-a-variable-number-of-arguments-in-as3.html
但是,我认为不可能以任何合理的方式完成您的要求。