flash actionscript 3.0 动画教程:函数之形式参数和实际参数
flash actionscript 3.0 动画教程:函数之形式参数和实际参数 本例为Flash AS3.0菜鸟学飞系列教程,在上一节中我们初步了解和认识了“函数”的引用,在本flash actionscript 3.0 教程中我们来学习函数之返回语句,希望能给朋友们带来帮助~~ 学习AS3菜鸟起飞吧之―函数(四):形式参数和实际参数 函数的参数是外界与函数内部通信的方法,对于有参函数来说,函数调用时函数有数据传递的关系。 看代码: //调用函数 max(5,7); //定义函数 function max(x:int,y:int):int { ? ? if(x > y) ? ? { ? ? ? ? ? x = x; ? ? ?} else { ? ? ? ? ? ? ?x = y; ? ? ?} ? ? ?return x; } 如果一个函数有返回值,可使用 return语句,并在定义函数时声明返回值的类型。 上面的代码在函数调用过程中发生了数据传递,先把5和7传递给x和y,再通过比较后返回大的值7,传递给函数max(),所以max(5,7)的值为7。 在定义函数时,括号中的变量称为形式参数(简称形参)。上面定义max()函数时的x和y就是形参。在调用函数时,函数名后面括号中的变量或表达式称为实际参数(简称实参)。如调用max()函数时的5和7。 函数的实参可以是任意数据类型的变量或表达式。 参数对于函数来说是非常重要,一个好的函数其参数应是不多不少。例如,toFixed()函数可以保留小数点的倍数,但它返回的是字符串。下面编写一个返回值是数字的保留小数点的函数: var a:Number = 2.55555; //保留两位小数并输出 trace(保留小数点(a,2); //定义函数 function 保留小数点(a:Number,b:uint):Number { ? ?//10的b次方 var t:uint = Math.pow(10,b); //a*t取整后除t并返回 return Math.round(a*t) / t; } 保留小数点的函数,需要两个参数,一个代表要保留小数点的数值,一个是保留小数点的位数。 对于形参很多的函数,可用对象来代替,下面函数求两点间的距离,用对象p1代表第一个点的坐标,用p2代表第二点的坐标: //调用函数并把返回值赋值给变量d //调用时定义两个对象的属性 var d:Numbet = distance({x:100,y:200},{x:100,y:100}); //输出距离 trace(d); function distace(p1:Object,p2:Object):Number { ? ? var x:Number = p1.x - p2.x; ? ? var y:Number = p1.y - p2.y; ? ? var dis:Number = Math.sqrt(x*x + y*y); ? ?return dis; } 定义对象一般有"new Object()",的形式,但也可通过"{}"运算符来定义对象,如:“{x:100,y:200}”相当于如下代码: var obj1:Object = new Object(); obj1.x = 100; obj1.y = 200; 按值还是按引用来传入参数 函数的参数可以是任何数据类型的变量,数据类型分为简单数据类型和复杂数据类型。 按值传入,那么参数对象会复制一份副本供函数内部操作,参数本身不会受影响,按引用传入,则不复制副本,函数内操作参数对象的引用,会改变参数对象的状态。 在AS3中,所有的参数都是按引用传入的。只不过,简单数据类型是不变对象,传引用和传值的效果一样,所以,如果参数是简单数据类型,可看成是传值,如果参数是复杂数据类型,就是传引用。 对于简单数据类型的参数来说,函数调用开始时,发生了从实参向形参的值传递,函数调用结束时形参并未向实参进行值传递,这种数据传递称为值传递。 flash actionscript 3.0 动画教程:函数之形式参数和实际参数http://bbs.9ria.com/thread-24205-1-1.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |