·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]AS3.0中的函数定义与语句(2)

时间:2012-09-28 15:59CuPlayer.com
6 、reset关键字的使用:使得参数更加灵活,reset可由任何字母代替,比如paras,使用了reset,函数中就不可以再用arguments了 eg: functiontest(...rest):void{ trace(rest.length); foreach(variinrest){ trace(i

6 、reset关键字的使用:使得参数更加灵活,reset可由任何字母代替,比如paras,使用了reset,函数中就不可以再用arguments了

  1. eg:  
  2. function test(...rest):void {  
  3. trace(rest.length);  
  4. for each (var i in rest) {  
  5. trace(i);  
  6. }  
  7. }  
  8. test(1,[2,3], 'ak47');  
  9. 结果:  
  10. 3  
  11. 1  
  12. 2,3  
  13. ak47  
  14.  
  15. eg:  
  16. function test(first:String, ...rest):void {  
  17. trace(rest.length);  
  18. for each (var i in rest) {  
  19. trace(first + ":" + i);  
  20. }  
  21. }  
  22.  
  23. test('test', 1,[2,3], 'ak47');  
  24. 结果:  
  25. 3  
  26. test:1  
  27. test:2,3  
  28. test:ak47//注:第一个参数声明了是字符类型,若使用其它类型可定会报错 

7、函数语句定义法,函数对象的本质:

  1. import flash.utils.getQualifiedClassName;  
  2. trace(getQualifiedClassName(aFunc));  
  3. trace(getQualifiedSuperclassName(aFunc));  
  4. trace(aFunc is Function);  
  5. trace(aFunc is Object);  
  6. function aFunc(){  
  7. trace("this is afunc!excute")  

结果:
builtin.as$0::MethodClosure//说明aFunc是内置MethodClosure类的一个对象,MethodClosure是不公开的,也不是动态的,因此一些高级函数技巧不能用于使用函数语句定义法定义的函数
Function//说明aFunc的父类是FUNCTION
true//说明aFunc是FUNCTION类型的对象
true//说明aFunc是一个object,因为FUNCTION类是直接继承自object的

8、函数表达式定义法,函数对象的本质:

  1. import flash.utils.getQualifiedClassName;  
  2. var aFunc:Function = function(){  
  3. trace("this is afunc!excute")  
  4. }  
  5. trace(getQualifiedClassName(aFunc));  
  6. trace(getQualifiedSuperclassName(aFunc));  
  7. trace(aFunc is Function);  
  8. trace(aFunc is Object); 

结果:
Function-1//说明aFunc是Function-1类型,不是内置的,而是动态创建的,若果多使用表达式定义法定义几个函数对象,那么编译时会生成function-2等
true//说明aFunc是FUNCTION类型的对象
true//说明aFunc是一个object,因为FUNCTION类是直接继承自object的 (极酷播放器www.89525.net )
 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器