在AS2.0时代,函数的参数没有一个严谨的定义,也就是说我们可以传入任意多的参数,然而到了AS3.0时代,我们必须严格的遵守参数的定义法,但是我们并没有丢失函数参数传入的灵活性,AS3.O提供了一个新的关键字…(rest),用法(…rest)。

我们可以把…rest看成一个参数集合,它可以由任何参数类型组成,其实它的类型是Array,也就是它拥有数组所有的成员属性和方法,它的长度由传入参数的个数而定,还要说明的是我们应用(…rest)它的同时,函数同样可以拥有属于它自己的预定义参数,下面看一个例子:

 

  1. //函数的定义  
  2. function myFun(pa1:String,pa2:int,...rest):void {  
  3.     trace("rest是否是Array类型:"+(rest is Array));  
  4.     trace("rest的长度:"+rest.length);  
  5.     trace("------------------------");  
  6.     for (var i in rest) {//得到传入值
  7.         trace(rest[i]);  
  8.     }  
  9. }  
  10. //函数的调用  
  11. myFun("this is string",2,[34,45],"restString",100);  
  12.    
  13. //这是输出结果  
  14. //rest是否是Array类型:true 
  15. //rest的长度:3  
  16. //------------------------  
  17. //34,45  
  18. //restString  
  19. //100