在As3.0中,Function的参数数是被严格限制的,如果定义的参数数与实际参数不同时,系统会报错(incorrect number of arguments),那么,“... (rest) parameter”大概就是被派来解救那些困扰于这个问题的孩子们的...
我写了一个例子来描述我对此的学习成果,正确的运行结果应该是输出:
3
4
| package { public class ArgTest extends Sprite { |
从程序中可见,...args在作为参数集时与arguments class很相似.可其实args与arguments class的方法完全无关,两者不可混淆。
如下例是可行的:
| package { public class ArgTest extends Sprite { public function ArgTest() { |
如果取用...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) ,暂且表过吧.
载自:http://www.2solo.cn/