定义函数时的…(rest)参数

本文探讨了ActionScript 3.0中如何使用新的...(rest)参数特性来替代arguments类,以实现更灵活的参数传递,并通过实例展示了如何应用这一特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在As3.0中,Function的参数数是被严格限制的,如果定义的参数数与实际参数不同时,系统会报错(incorrect number of arguments) ,那么,“… (rest) parameter”大概就是被派来解救那些困扰于这个问,的孩子们的…

package {
import flash.display.Sprite;
public class ArgTest extends Sprite {
private var argArr:Array=new Array(”EEE”,”FFF”,”GGG”,”HHH”);
private var obj=new Object();
public function ArgTest() {
myArgFunc(”AAA”, “BBB”,”CCC”);
myArgFunc.apply(null,argArr)
}
public function myArgFunc(…args):void {
//取args做为参数数组名
trace(args);
}
}
}

 
从程序中可见,…args在作为参数集时与arguments class很相似.可其实args与arguments class的方法完全无关,两者不可混淆。
如下例是可行的:

package {
import flash.display.Sprite;
public class ArgTest extends Sprite {
private var argArr:Array=new Array(”EEE”,”FFF”,”GGG”);
private var count:Number=0;
public function ArgTest() {
myArgFunc(”AAA”, “BBB”,”CCC”);
}
public function myArgFunc(A,B,C):void {
trace(arguments);
if (count++<10) {
myCallee(arguments.callee);
}
}
public function myCallee(caller:Function) {
caller.apply(null,argArr);
}
}
}

 


如果取用…args作为参数,则不管取args.callee还是arguments.callee都是无效的.须注意,在As3中,推荐用“… (rest) parameter”方法来代替arguments的(ActionScript 3.0 includes a new ...(rest) keyword that is recommended instead of the arguments class.).
另外发现Array.sort()和Array.splice()也用到了…(rest) ,暂且表过吧.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值