揭开AS程序的外纱(七) -- 函数的这些,你知道不?

简介:

    1. 函数参数可以设定默认值

 

    这个是AS3.0新增加的功能,非常实用。在AS2.0中,要实现相同功能,需要多写不少代码。下面我们来看看用法:

    function testFunc(x:int, y:int = 5):void {

        trace(x, y);

    }

    testFunc(1); //返回:1 5

    testFunc(1,3); //返回:1 3

    采用默认值,我们可以方便的实现一些非常灵活的函数传参。不过要注意的是,采用默认值的参数,一定要放在后面。比如上例,第一行如果改成:

    function testFunc(x:int = 5, y:int)

    编译时是会报错的。

 

    2. arguments 对象 和 ...(rest)参数

 

    (1) 在AS2.0中,函数实际传递参数数量可以超过函数定义中需要的参数。虽然在AS3.0的帮助文档中,说AS3.0也是可以的。但实际上,在Flash cs3 pro下编译,除非使用...(rest)参数,否则是不可以的!验证方式很简单,我们用下面这段代码做个测试:

    function testFunc(str:String){

        trace(str);

    }

    testFunc("a","b");

    在AS2.0中运行通过;但在AS3.0中编译报错!

    唉,这年头,帮助文档也靠不住啊!

    (2) ...(rest)参数是AS3.0新出的功能,使用...(rest)参数后,可以传递任意多个参数给函数,而...(rest)参数包含了多出来的那些参数...(rest)参数必须放在函数参数的最后面,不然会报错!

    function testFunc(str:String, ...args){

        for (var i:uint = 0; i < args.length; i++) {

            trace(args[i]);

        }

    }

    testFunc("a","b","c");

    输出:

    b

    c

    (3) arguments应用于AS2.0时代,功能和...(rest)参数类似。但是由于AS3.0在严格模式下并不支持传递参数数量超过函数定义数量。并且,使用了...(rest)参数后,函数不再支持arguments参数

    当然,arguments还有一个可应用于递归函数的callee属性。但是这个属性本身的使用范围并不大。我们完全可以用函数体本身的名字来实现。因此,在AS3.0中,这个曾经AS2.0时期的利器,逐渐黯然退出了历史舞台。










本文转自 windtoto 51CTO博客,原文链接:http://blog.51cto.com/windtoto/383600,如需转载请自行联系原作者
目录
相关文章
|
4天前
|
缓存 Ubuntu 网络协议
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
32 1
|
4天前
|
缓存 监控 Java
Hysterix的概念、作用、使用方法
Hysterix的概念、作用、使用方法
10 0
|
4天前
|
Linux Shell 调度
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
|
4天前
|
存储 监控 安全
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
100 0
|
4天前
|
存储 前端开发 JavaScript
揭开 `arguments` 对象的神秘面纱:函数参数的操控利器(上)
揭开 `arguments` 对象的神秘面纱:函数参数的操控利器(上)
|
4天前
|
存储 前端开发 JavaScript
揭开 `arguments` 对象的神秘面纱:函数参数的操控利器(下)
揭开 `arguments` 对象的神秘面纱:函数参数的操控利器(下)
|
11月前
|
Python
谈一谈|如何利用函数的各种参数
谈一谈|如何利用函数的各种参数
57 0
蓝桥杯之单片机学习(二十三)——对于官方驱动的函数调用,包装程序
蓝桥杯之单片机学习(二十三)——对于官方驱动的函数调用,包装程序
蓝桥杯之单片机学习(二十三)——对于官方驱动的函数调用,包装程序
|
存储 Python
第四章--第一节:函数
第四章--第一节:函数
101 0
|
数据采集 机器学习/深度学习 算法
讲讲Python中的函数传递问题 【文末送书】
正式的Python专栏第25篇,同学站住,别错过这个从0开始的文章!
103 0
讲讲Python中的函数传递问题 【文末送书】