因为as3中会在函数调用时检查参数(argument)的数量,所以我们不可以像在as1/as2时候那样随意的设置函数参数(argument)的个数.但as3使用一个新的特殊的参数来解决这个问题.这个参数是…(rest) (
Keyword: …(rest)).
参数…(rest) 放置在函数的参数列表的最后边,用来表示当函数调用时可以附加传递任意个数任何类型的参数,它的格式是三个点加上一个关键字. 当函数被调用时,这些附加的参数(arguments)被以数组形式绑定到这个关键字.
ActionScript Code:
参数…(rest) 放置在函数的参数列表的最后边,用来表示当函数调用时可以附加传递任意个数任何类型的参数,它的格式是三个点加上一个关键字. 当函数被调用时,这些附加的参数(arguments)被以数组形式绑定到这个关键字.
ActionScript Code:
function usingRest(required:Number, ... optionalArgs):void
{
trace(required);// 1
trace(optionalArgs); // [2, 3, 4]
trace(optionalArgs.length);//3
}
usingRest(1, 2, 3, 4);
我也试了一下
package {
import flash.display.Sprite;
public class asProject extends Sprite
{
private var _square:Sprite;
private var _circle:Sprite;
public function asProject()
{
var average:Number = average(1, 2, 5, 10, 8, 20);
}
private function average(...arguments):Number{
var sum:Number=0;
for(var i:int=0;i<arguments.length;i++){
sum +=arguments[i];
}
return sum/arguments.length;
}
}
}