论坛首页 Web前端技术论坛

Javascript 函数 (三) 回调函数(Callback Functions)

浏览 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.提高了程序的性能。

 

 

   发表时间:2008-12-26   最后修改:2008-12-26
“通过上面两个实例,回调函数的定义为:传递一个函数到另一个函数中,并且这个函数被执行了。我们就说这个叫做回调函数。如果没有名称,就叫做匿名回调函数”
-------
没看懂.不知道说的‘这个’是‘一个’还是‘另一个’,或者还有第三个函数?
0 请登录后投票
   发表时间:2008-12-26  
就是传参的函数。。我马上改下说法。。。。呵呵
0 请登录后投票
   发表时间: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();这样写也成?怎么解释呢
0 请登录后投票
   发表时间:2009-03-10  
ywt_go 写道

&lt;script type="text/javascript"&gt;
function invoke_and_add(a,b){&nbsp;&nbsp;
&nbsp; return a+b;&nbsp;&nbsp; //A&nbsp;&nbsp;
&nbsp;
function one(){&nbsp;&nbsp;
&nbsp; return 1;&nbsp;&nbsp;
}&nbsp;&nbsp;
&nbsp;
function two(){&nbsp;&nbsp;
&nbsp; return 2;&nbsp;&nbsp;
}&nbsp;&nbsp;
&nbsp;
document.write(invoke_and_add(one ,two));

&lt;/script&gt;

如果这样写的话,会得到结果:
function one(){ return 1; }function two(){ return 2; }
只是把两个函数给连接起来输出来了。
A处为什么会自动先转换成字符串然后连接,而不是先把1+2=3后再转换成字符串呢?
retrun a()+b();这样写也成?怎么解释呢

Functions are data ....a(),b()是函数的调用。。a,b是个值。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics