浏览 18537 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-25
最后修改:2008-12-26
回调函数(Callback Functions)因为函数和其他数据一样可以被赋值,删除,拷贝等,所以也可以把函数作为参数传入到另一个函数中。 实例一function invoke_and_add(a,b){ return a()+b(); } function one(){ return 1; } function two(){ return 2; } invoke_and_add(one ,two); 结果为3; 再来看看匿名函数的用法。 实例二invoke_and_add(function(){return 1;},function(){return 2;}) 我们用匿名函数替代了 one,two两个函数。 通过上面两个实例,回调函数的定义为:传递一个函数A到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称,就叫做匿名回调函数
回调函数的作用主要有三个 1.当函数作为参数传递的时候,不用为这个函数定义一个名称,这样的好处是减少了全局变量。 2.节省了大量的代码。 3.提高了程序的性能。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-26
最后修改:2008-12-26
“通过上面两个实例,回调函数的定义为:传递一个函数到另一个函数中,并且这个函数被执行了。我们就说这个叫做回调函数。如果没有名称,就叫做匿名回调函数”
------- 没看懂.不知道说的‘这个’是‘一个’还是‘另一个’,或者还有第三个函数? |
|
返回顶楼 | |
发表时间:2008-12-26
就是传参的函数。。我马上改下说法。。。。呵呵
|
|
返回顶楼 | |
发表时间:2009-03-10
<script type="text/javascript">
function invoke_and_add(a,b){ return a+b; //A function one(){ return 1; } function two(){ return 2; } document.write(invoke_and_add(one ,two)); </script> 如果这样写的话,会得到结果: function one(){ return 1; }function two(){ return 2; } 只是把两个函数给连接起来输出来了。 A处为什么会自动先转换成字符串然后连接,而不是先把1+2=3后再转换成字符串呢? retrun a()+b();这样写也成?怎么解释呢 |
|
返回顶楼 | |
发表时间:2009-03-10
ywt_go 写道 <script type="text/javascript"> function invoke_and_add(a,b){ return a+b; //A function one(){ return 1; } function two(){ return 2; } document.write(invoke_and_add(one ,two)); </script> 如果这样写的话,会得到结果: function one(){ return 1; }function two(){ return 2; } 只是把两个函数给连接起来输出来了。 A处为什么会自动先转换成字符串然后连接,而不是先把1+2=3后再转换成字符串呢? retrun a()+b();这样写也成?怎么解释呢 Functions are data ....a(),b()是函数的调用。。a,b是个值。 |
|
返回顶楼 | |