AS3的函数参数灵活性 …rest

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

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


代码
    //函数的定义  
    
function myFun(pa1:String,pa2:int,...rest):void {  
        trace(
"rest是否是Array类型:"+(rest is Array));  
        trace(
"rest的长度:"+rest.length);  
        trace(
"------------------------");  
        
for (var i in rest) {//得到传入值
            trace(rest[i]);  
        }  
    }  
   
//函数的调用  
   myFun(
"this is string",2,[34,45],"restString",100);  
      
   
//这是输出结果  
   
//rest是否是Array类型:true 
   
//rest的长度:3  
   
//------------------------  
   
//34,45  
   
//restString  
   
//100 


posted @ 2010-12-06 11:33  liushan  阅读(647)  评论(0)    收藏  举报