什么是传递函数

还有,传递函数怎么咧出来的,谢谢回答亚... 还有,传递函数怎么咧出来的,谢谢回答亚 展开
miniapp3tbiynmvjd22g
2007-03-30 · TA获得超过347个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:65.4万
展开全部
传递参数
某些函数不需要给它们传递任何信息。例如,前面一节中的dlsplayGreetlng()函数就不需要任何参数。换句话说,许多函数需要给它们传递参数。例如,如果dlsplayGreetlng()函数可以使用不同的姓名来显示个性化的问候,就会使dlsp]ayGreetlng()函数更加有趣了。有了参数,实现这一点就简单了。把上面的函数修改一下,如下所示:

function displayGreeting(姓名:String):Void{
trace("Hello."+姓名)
}
一旦用这种方式定义了该函数,就可以调用它了,并给它传递不同的参数值。某些例子如下所示:
displayGreeting("张三");//显示:Hello.张三
displayGreeting("李四");//显示:Hello.李四
在一个函数中,一个参数就是一个变量,当调用该函数时就给变量赋值。就像在displayGreeting()函数中所看到的那样,参数被命名为"姓名",在每次调用该函数的时候就给该参数设置值。当用值"张三"调用该函数时,该变量就被赋予了"张三";当用值"李四"调用该函数时,该变量就被赋予了"李四"。参数(变量)是在函数定义的圆括号中声明的。读者可能注意到了,参数的声明与常规变量的声明相似但略微不同。首先,声明的相似性在于,需要给变量创建一个名字并定义一个数据类型。但是,当声明一个参数时,不需要使用var关键字,也不需要使用分号,并且不能在圆括号中初始化一个参数。下面的代码是不正确地声明参数的例子,将产生错误:

//不能使用var关键字。
function displayGreeting(var 姓名:String):Void{
trace("Hello."+姓名)
}
//不能使用分号。
function displayGreeting(姓名:String;):Void{
trace("Hello."+姓名)
}
//不要试着在圆括号中初始化变量。
function displayGreeting(姓名:String="王麻子"):Void{
trace("Hello."+姓名)
}如果想在函数中使用多个参数,该怎么办呢?很简单,当定义函数时,可以声明用逗号分隔开的多个参数。同样地,当调用该函数时,可以给它传递多个值,只需简单地用逗号分隔这些值即可。如下是具有多个参数的dlsp]ayGreetlng()函数的例子:function displayGreeting(姓名:String,体重:Number):Void{
trace(姓名+"的体重是:"+体重);
}
displayGreeting("张三",50);//显示:张三的体重是:50 ,读者可能注意到了,当开始将越来越多的参数添加到一个函数定义的参数列表中时,代码就开始超出编辑器的边界了。可以在Actions面板中启用自动换行功能。还可以在定义函数时将每个参数(或参数组)放置到新的一行中。这是一个通常采用的习惯,因为它能更容易地阅读一个由许多参数组成的函数的参数列表。语法是相同的,区别仅在于:参数列表中的每个参数都放在新的一行中,以便使它更容易阅读。例如:

function displayGreeting(姓名:String,
体重:Number):Void{
trace(姓名+"的体重是:"+体重);
}
注意:定义函数的参数个数与调用时传递的参数个数不一定要相同,当然,如果该有的参数没有的话,可能函数不会正常工作,多个参数是按先后顺序依次“对号入座”的。
1、给参数传递值和引用。
当给函数传递参数时,参数是用两种方式之一进行传递的:按值和按引用。其区别与数据类型有关。
(1)基本数据类型,如string,number,Boolean,是按值传递的。这就是说,值被传递给了函数,而与该值所来自的变量的任何联系都被切断了。换句话说,当值被传递给函数后,任何被用于传递值的变量就独立了。下面是一个例子:

function 引用测试(a:Number):Number{
a++;
return a;
}
var b:Number=5;
var c:Number=引用测试(b);
trace(b);
trace(c);
Output窗口会显示如下内容
5
6
在这个例子中,尽管b的值被传递给了函数,并且那个值在函数中被增加了1,但b仍保持它的值(5)。为什么?因为b的值被传递给了函数,而不是变量自己。然后,那个值在函数中被赋予了一个名为a的参数,被增加、被返回。然后,返回的值被赋予了一个新的名为c的变量。
(2)当引用数据类型被作为参数传递时,它们就按引用进行传递。这就是说,一个被传递给函数的对象是对该实际对象的一个引用。其结果是,在函数中对对象引用所做的任何事情都会影响到该对象本身。没有产生该对象的副本。下面是一个使用名为mBox的MovieClip实例的例子:

function move(mA:MovieClip,X:Number,Y:Number):Void{
mA._X=x;
mA._y=y;
}
move(mBox,100,100);
上面这个例子将名为mBox的MovieClip对象移动到舞台的(100,100)处。

2、使用arguments属性。
现在所看见过的函数要么不使用任何参数,要么参数被声明为圆括号中的参数列表。但是,不管一个函数是否声明了任何参数,传递给函数的所有参数都被保存在一个名为arguments的特殊数组中。每个函数都有一个arguments变量(对象),当调用函数的时候,就在该函数中创建该变量。ActionScript并不强求函数定义中的参数个数与调用时传递给该函数的参数个数一致。其意思是在调用时没有被传递、但在函数的参数字符串中被定义过的任何值,都会具有一个undeflned值;而在函数调用中传递的任何值,如果在函数的参数定义中没有它,就会被忽略。因此,完全可以定义一个没有参数的函数,但仍然可使用arguments对象传递参数。下面是一个把arguments对象作为数组使用的例子: function traceParams():Void{
for(i=0;i<arguments.length;i++)(
trace(arguments[i]);
}
}
traceParams("one","two","three");在这个例子中,下面的内容会显示在Output窗口中:
one
two
three
在大多数函数中,声明参数要好得多。当重载一个函数或遇到相似情况时(参见“重载函数”一节),arguments对象很有用。每一个arguments对象都有两个特殊的引用函数的属性。尽管不常使用这些属性(caller和callee),但在某些情况下(特别是在开发高度抽象的函数时)这些属性却有用。如果有一个函数调用当前函数的话,arguments对象的caller属性就返回对这个函数的引用。如果没有另一个函数调用当前函数的话,caller属性就有一个null值。
function function1():Void{
function2();
}
function function2():Void{
if(arguments.caller==function1)
trace("function2 called from function1");
else
trace("function2 not called from function1");
}
function1();//Output:function2 called from function1
function2();//Output:function2 not called from function1一个函数的arguments对象的callee属性是对该函数本身的引用。可能不能立即看出为什么说这是有用的。但是,考虑一下匿名的递归函数的情况。可以像下面这样写一个可以递归地调用自己的函数:
Var fFactorial:Function =function(nOperand:Number):Number{
if(nOperand>0){
return nOperand * arguments.callee(nOperand-1);
}else{
return 1;
}
}
lixh_2008szhit
2012-07-24
知道答主
回答量:6
采纳率:100%
帮助的人:5.9万
展开全部
传递函数是工程控制理论的概念, 它是反映系统输出与输入之间的函数关系, 是一种频域分析法.
由输出函数(对时间t)的拉氏变换Y(s)与输入函数(对时间t)的拉氏变换u(s)的比值得到.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式