一、理解js回调函数
要理解js中的回调,首先来看一下某jQuery网站上的英文定义,感觉理解起来比较清晰:
A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
字面上理解就是,回调就是一个函数的调用过程。函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。
形象的理解:回调,就是回头调用的意思。函数a的事先干完,回头再调用函数b。
这里必须清楚一点:函数b是你以参数形式传给函数a的,那么函数b就叫回调函数。当然,如果你直接在函数a里调用的话,那么这个回调函数就被限制死了。而使用函数做参数就有下面的好处:当你a(b)的时候函数b就成了回调函数,而你还可以a(c)这个时候,函数c就成了回调函数。如果你写成了function a(){…;b();}就失去了变量的灵活性。
二、回调函数的使用
下面两个回调函数的例子:
eg1:
//定义
function invokeADD(a,b){
return a()+b();
}
function a(){
return 1;
}
function b(){
return 2;
}
//调用
invokeADD(one,two);
eg2:
//定义
function a(callback){
var m = 1;
var n = 2;
alert(callback(m,n));
}
function b(m,n){
return m+n;
}
//调用
a(b);