




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 函数函数 利用函数编程,可以避免冗长、杂乱的代利用函数编程,可以避免冗长、杂乱的代码;利用函数编程,可以重复利用代码,码;利用函数编程,可以重复利用代码,提高程序效率;提高程序效率; ActionScript 3.0ActionScript 3.0中有两类函数:中有两类函数:“方法方法”和和“函数闭包函数闭包”。具体是将函数称为方法。具体是将函数称为方法还是函数闭包,取决于定义函数的上下文。还是函数闭包,取决于定义函数的上下文。4.1 4.1 定义函数定义函数 在在ActionScript 3.0ActionScript 3.0中有两种定义函数的中有两种定义函数的方法:方法:
2、一种是常用的函数语句定义法;一种是常用的函数语句定义法; 一种是一种是ActionScriptActionScript中独有的函数表达式中独有的函数表达式定义法。定义法。4.1.1 4.1.1 函数语句定义法函数语句定义法 函数语句定义法是程序语言中基本类似的定义方法格式函数语句定义法是程序语言中基本类似的定义方法格式如下。如下。function function 函数名函数名( (参数参数1:1:参数类型参数类型, ,参数参数2:2:参数类型参数类型):):返返回类型回类型 / /函数体函数体 代码格式说明:代码格式说明: functionfunction:定义函数使用的关键字。注意:定义函
3、数使用的关键字。注意functionfunction关键关键字要以小写字母开头。字要以小写字母开头。 函数名:定义函数的名称。最好给函数取一个与其功能函数名:定义函数的名称。最好给函数取一个与其功能一致的名字。一致的名字。 小括号:小括号内的参数和参数类型都可选。小括号:小括号内的参数和参数类型都可选。 返回类型:定义函数的返回类型,也是可选的,要设置返回类型:定义函数的返回类型,也是可选的,要设置返回类型,冒号和返回类型必须成对出现。返回类型,冒号和返回类型必须成对出现。 大括号:是调用函数时执行的代码。大括号:是调用函数时执行的代码。4.1.2 4.1.2 函数表达式定义法函数表达式定义法
4、 函数表达式定义法有时也称为函数字面值或匿名函数。函数表达式定义法有时也称为函数字面值或匿名函数。这是一种较为繁杂的方法,在早期的这是一种较为繁杂的方法,在早期的ActionScriptActionScript版本版本中广为使用。其格式如下所示。中广为使用。其格式如下所示。var var 函数名函数名:Function=function(:Function=function(参数参数1:1:参数类型参数类型, ,参数参数2:2:参数类型参数类型):):返回类型返回类型 / /函数体函数体 varvar:定义函数名的关键字。:定义函数名的关键字。 函数名:定义的函数名称。函数名:定义的函数名称。
5、 FunctionFunction:指示定义数据类型是指示定义数据类型是FunctionFunction类。注意类。注意FunctionFunction为数据类型,需大写字母开头。为数据类型,需大写字母开头。 = =:赋值运算符,把匿名函数赋值给定义的函数名。:赋值运算符,把匿名函数赋值给定义的函数名。 functionfunction:定义函数的关键字,指明定义的是函数:定义函数的关键字,指明定义的是函数 小括号:小括号内的参数和参数类型都可选。小括号:小括号内的参数和参数类型都可选。 返回类型:定义函数的返回类型,可选参数。返回类型:定义函数的返回类型,可选参数。 大括号:其中为函数要执行
6、的代码。大括号:其中为函数要执行的代码。4.1.3 4.1.3 两种定义方法的区别和选择两种定义方法的区别和选择 1 1两种方法区别两种方法区别 函数语句定义的函数无论是在函数之前还是之后函数语句定义的函数无论是在函数之前还是之后都可以调用;函数表达式定义的函数只能在函数都可以调用;函数表达式定义的函数只能在函数定义之后调用。定义之后调用。4.1.3 4.1.3 两种定义方法的区别和选择两种定义方法的区别和选择 2 2两种方法的选择两种方法的选择 在两种定义方法的选择上,一般使用函数语句定在两种定义方法的选择上,一般使用函数语句定义法。函数表达式定义函数主要用于:一是适合义法。函数表达式定义函
7、数主要用于:一是适合关注运行时行为或动态行为的编程,二是用于那关注运行时行为或动态行为的编程,二是用于那些使用一次后便丢弃的函数或者向原型属性附加些使用一次后便丢弃的函数或者向原型属性附加的函数。的函数。4.2 4.2 调用函数调用函数 函数只是一个编好的程序块,在没有被调用之前,函数只是一个编好的程序块,在没有被调用之前,什么也不会发生。只有通过调用函数,函数的功什么也不会发生。只有通过调用函数,函数的功能才能够实现,才能体现出函数的高效率。能才能够实现,才能体现出函数的高效率。4.2.1 4.2.1 函数的一般调用函数的一般调用 对于没有参数的函数,可以直接使用该函数的名字对于没有参数的函
8、数,可以直接使用该函数的名字, ,并并后跟一个圆括号后跟一个圆括号( (它被称为它被称为“函数调用运算符函数调用运算符”) )来调用。来调用。function HelloAS() function HelloAS() trace(AS3.0trace(AS3.0世界欢迎你!世界欢迎你!);); HelloAS();HelloAS();代码运行后的输出结果,如下所示。代码运行后的输出结果,如下所示。/ /输出:输出:AS3.0AS3.0世界欢迎你!世界欢迎你!4.2.2 4.2.2 嵌套和递归调用函数嵌套和递归调用函数 嵌套和递归调用是两种类似函数调用方式,其本嵌套和递归调用是两种类似函数调用方
9、式,其本质都是在调用函数时用一个函数就调用另一个函质都是在调用函数时用一个函数就调用另一个函数。不同的是,嵌套调用是用一个函数去调用另数。不同的是,嵌套调用是用一个函数去调用另一个函数,而递归调用是函数调用自身函数。一个函数,而递归调用是函数调用自身函数。 1 1嵌套调用函数嵌套调用函数 2 2递归调用函数递归调用函数4.3 4.3 函数的返回值函数的返回值 主调函数通过函数的调用得到一个确定的值,此主调函数通过函数的调用得到一个确定的值,此值被称为函数的返回值。利用函数的返回值,可值被称为函数的返回值。利用函数的返回值,可以通过函数进行数据的处理、分析和转换,并能以通过函数进行数据的处理、分
10、析和转换,并能最终获取想要获得的结果。最终获取想要获得的结果。4.3.1 return4.3.1 return语句语句 ASAS从函数中获取返回值,使用从函数中获取返回值,使用returnreturn语句语句来实现,语法格式如下:来实现,语法格式如下: return return 返回值返回值 returnreturn:函数返回值的关键字,必须的。:函数返回值的关键字,必须的。 返回值:函数中返回的数据,既可以是字返回值:函数中返回的数据,既可以是字符串、数值等,也可以是对象,如数组、符串、数值等,也可以是对象,如数组、影片简介等。影片简介等。4.3.1 return4.3.1 return语
11、句语句 下面定义一个求圆形面积的函数,并返回圆面积的值,下面定义一个求圆形面积的函数,并返回圆面积的值,其代码如下:其代码如下: function function 圆面积圆面积(r:Number):Number(r:Number):Number var s:Number=Math.PIvar s:Number=Math.PI* *r r* *r r return sreturn s trace(trace(圆面积圆面积(5)(5)4.3.2 4.3.2 返回值类型返回值类型 函数的返回类型在函数的定义中属于可选函数的返回类型在函数的定义中属于可选参数,如果没有选择,那么返回值的类型参数,如果
12、没有选择,那么返回值的类型由由returnreturn语句中返回值的数据类型来决定。语句中返回值的数据类型来决定。4.3.2 4.3.2 返回值类型返回值类型 function function 类型测试类型测试() () var a:String=var a:String=这是一个字符串这是一个字符串; return a;return a; trace(typeof(trace(typeof(类型测试类型测试();(); 代码运行后的输出结果,如下所示。代码运行后的输出结果,如下所示。 stringstring4.4 4.4 函数的参数函数的参数 函数通过参数向函数体传递数据和信息。函数通过
13、参数向函数体传递数据和信息。ActionScript 3.0ActionScript 3.0对函数的参数增加了一对函数的参数增加了一些新功能,同时也增加了一些限制。有大些新功能,同时也增加了一些限制。有大多数程序员都熟悉的按值或按引用传递参多数程序员都熟悉的按值或按引用传递参数这一概念,也有对很多人很陌生的数这一概念,也有对很多人很陌生的argumentsarguments对象和对象和.(rest).(rest)参数。参数。4.4.1 4.4.1 传递参数的语法传递参数的语法 函数中传递的参数都位于函数格式的括号函数中传递的参数都位于函数格式的括号中,语法格式如下:中,语法格式如下:( (参数
14、参数1:1:参数类型参数类型= =默认值默认值, ,参数参数2:2:参数类型参数类型= =默认值默认值) )4.4.2 4.4.2 传递参数的的两种方法传递参数的的两种方法 许多编程语言中,参数的传递基本都是两种类型:许多编程语言中,参数的传递基本都是两种类型:按值或者按引用传递。按值传递意味着将参数的按值或者按引用传递。按值传递意味着将参数的值复制到局部变量中以便在函数内使用。按引用值复制到局部变量中以便在函数内使用。按引用传递意味着将只传递对参数的引用,而不传递实传递意味着将只传递对参数的引用,而不传递实际值。际值。4.4.2 4.4.2 传递参数的的两种方法传递参数的的两种方法 基元型数
15、据是按值传递。基元型数据是按值传递。按值传递,就是指参数被传按值传递,就是指参数被传递给函数后,被传递的变量就独立了。若在函数中改递给函数后,被传递的变量就独立了。若在函数中改变这个变量,原变量不会发生任何的变化。变这个变量,原变量不会发生任何的变化。 复杂型数据是按引用传递。复杂型数据是按引用传递。函数内部对变量数据的修函数内部对变量数据的修改会影响原变量。改会影响原变量。4.4.3 4.4.3 给函数设置默认参数给函数设置默认参数 在在AS2.0AS2.0中不支持对函数设置默认参数,此为中不支持对函数设置默认参数,此为ActionScript 3.0ActionScript 3.0的新功能
16、。的新功能。function(function(参数参数1:1:参参数类型数类型= =默认值默认值, ,参数参数2:2:参数类型参数类型= =默认值默认值) ) 默认参数是可选项,可以设置默认参数,也可以默认参数是可选项,可以设置默认参数,也可以不设置默认参数。若设置了默认参数,则在调用不设置默认参数。若设置了默认参数,则在调用函时,若果没有写明参数,系统将使用在函数定函时,若果没有写明参数,系统将使用在函数定义中为该参数指定的值。义中为该参数指定的值。4.4.4 arguments 4.4.4 arguments 对象和对象和.(rest) .(rest) 参数参数 ActionScript
17、3.0ActionScript3.0中有两种函数调用时检查参数数中有两种函数调用时检查参数数量的方法,分别为使用量的方法,分别为使用argumentsarguments对象和对象和.(rest) .(rest) 参数。参数。 1 1arguments arguments 对象对象 在函数中,可以使用在函数中,可以使用arguments arguments 对象来访问有关传对象来访问有关传递给该函数的参数的信息。递给该函数的参数的信息。arguments arguments 对象是一个对象是一个数组,其中按顺序保存着传递给函数的所有参数。数组,其中按顺序保存着传递给函数的所有参数。可以使用数组的访问方式来访问传入的参数。它有可以使用数组的访问方式来访问传入的参数。它有一个一个lengthlength属性记录当前传入的参数数目;还有一属性记录当前传入的参数数目;还有一个属性个属性calleecallee
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省长沙市望城区长郡斑马湖中学2024-2025学年高二上学期开学考试语文试题(原卷版)
- 奇幻小镇美术课件
- 解密CFA考试的特点和优势试题及答案
- 2025届河北省秦皇岛市昌黎县高三下学期第一次模拟考试地理试卷(解析版)
- 【地理】广东省两校2024-2025学年高三上学期1月第一次模拟考试试题(解析版)
- 2024年特许金融分析师考试分析工具试题及答案
- 理论与实践结合的特许金融分析师试题及答案
- 精确识别CFA试题及答案
- 心理教育的探索与实践
- CFA课程结构与安排试题及答案
- 玉盘二部合唱正谱
- 《观照自然》课件2024-2025学年人美版(2024)初中美术七年级下册
- 西宁市城北区2025年招考编制外工作人员高频重点模拟试卷提升(共500题附带答案详解)
- 来访人员安全入场教育
- 2025年第六届(中小学组)国家版图知识竞赛测试题库及答案
- 《数据安全法》参考试题库150题(带答案)
- 青龙山经营性公墓项目融资策划分析报告
- 高中家长会 冲刺高考为梦而战课件-高三下学期家长会
- 内环境稳态-课件
- 垂体瘤的MRI诊断与鉴别诊断课件
- 小学感恩教育主题班会课件
评论
0/150
提交评论