[AS3]AS3.0中的函数定义与语句(2)
6 、reset关键字的使用:使得参数更加灵活,reset可由任何字母代替,比如paras,使用了reset,函数中就不可以再用arguments了
- eg:
- function test(...rest):void {
- trace(rest.length);
- for each (var i in rest) {
- trace(i);
- }
- }
- test(1,[2,3], 'ak47');
- 结果:
- 3
- 1
- 2,3
- ak47
- eg:
- function test(first:String, ...rest):void {
- trace(rest.length);
- for each (var i in rest) {
- trace(first + ":" + i);
- }
- }
- test('test', 1,[2,3], 'ak47');
- 结果:
- 3
- test:1
- test:2,3
- test:ak47//注:第一个参数声明了是字符类型,若使用其它类型可定会报错
7、函数语句定义法,函数对象的本质:
- import flash.utils.getQualifiedClassName;
- trace(getQualifiedClassName(aFunc));
- trace(getQualifiedSuperclassName(aFunc));
- trace(aFunc is Function);
- trace(aFunc is Object);
- function aFunc(){
- trace("this is afunc!excute")
- }
结果:
builtin.as$0::MethodClosure//说明aFunc是内置MethodClosure类的一个对象,MethodClosure是不公开的,也不是动态的,因此一些高级函数技巧不能用于使用函数语句定义法定义的函数
Function//说明aFunc的父类是FUNCTION
true//说明aFunc是FUNCTION类型的对象
true//说明aFunc是一个object,因为FUNCTION类是直接继承自object的
8、函数表达式定义法,函数对象的本质:
- import flash.utils.getQualifiedClassName;
- var aFunc:Function = function(){
- trace("this is afunc!excute")
- }
- trace(getQualifiedClassName(aFunc));
- trace(getQualifiedSuperclassName(aFunc));
- trace(aFunc is Function);
- trace(aFunc is Object);
结果:
Function-1//说明aFunc是Function-1类型,不是内置的,而是动态创建的,若果多使用表达式定义法定义几个函数对象,那么编译时会生成function-2等
true//说明aFunc是FUNCTION类型的对象
true//说明aFunc是一个object,因为FUNCTION类是直接继承自object的 (极酷播放器www.89525.net )
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例