Adobe flash cs3 ActionScript 3.0入门
2007-09-03 11:08:27 来源:WEB开发网使用默认参数值,你不但可以得到一个指定的默认参数值,而且可以让你定义的函数可以有任意的参数,甚至是不被使用的参数。在函数调用时,那些没有默认值的参数必须要提供,基于这一点,所有的自由定义的有默认值的参数都要定义在参数列表之后。你不能把那些必须的参数定义在自由定义的有默认值的参数之后。
代码:
// 错误:没有必须的参数
// num定义在了message之后。
function usesDefault(message:String = "hello", num:Number):void {
// code
}
代码:
// 正确; usesDefault至少需要一个参数,最大是两个参数
// least 1 argument, accepts 2 at max
function usesDefault(num:Number, message:String = "hello"):void {
// code
}
那么如何让一个函数在调用时可以有任意数量的参数呢?,在ActionScript 2.0中,你只需要简单的删去参数列表然后通过引用arguments对象即可。在ActionScript 3.0中,已经没有了真正的参数列表,这意味着使用任何argument的函数将无法被调用。取而代之的是,你不得不使用一个新的参数类型为…(rest其它).它放置在你的参数列表之后(或者它就是你的整个参数),当调用函数时你可以使用任意数量的参数。…(rest)参数要被写成如下格式…[argumentsArrayName],arrgumentsArrayName是一个数组,它用来承载所传递的参数。
代码:
function passAnything(...statements):void {
trace(statements.length +": "+ statements);
}
passAnything(); // traces 0:
passAnything(1); // traces 1: 1
passAnything("a", true, 0); // traces 3: a,true,0
注意:当使用…(rest)参数时,当函数调用时arguments对象不在可用了。取而代之的是…(rest)参数用来获得传递的参数。然而…(rest)并不象早期版本的arguments,它不在有caller属性来引用当前的函数。在ActionScript 3.中,arguments和…(rest)两者都没有callee属性来引用当前所调用的函数。(callee 在ActionScript2.0中的arguments 对象中是可用的,但是ActionScript 3.0中已移除).
更多精彩
赞助商链接