理解回调函数,首先要知道在JavaScript中,函数也是对象,它可以赋值给变量,也可以作为参数传递给另一个函数。比如:
var add=function(a,b){ console.log(a+b); }; //3 add(1,2);
这里定义了一个变量add,然后将一个匿名函数赋值给了这个变量;
接下来演示将函数作为参数传递给另一个函数,换句话说就是:将一个函数放在另一个函数(如 parent)的参数列表中,作为参数传递给parent,然后在parent函数体的某个位置执行它。其实这也就是回调函数了。看个小栗子:
var fun=function(callback){ var a=1,b=2,c=3; var s=callback(a,b,c); return s; };
//调用fun var t=fun(function(x,y,z){ return (x+y+z); }); //6 console.log(t);
首先是定义函数fun,fun有个参数callback(名字可以随便取嘛),在调用fun函数之前,并不知道这个callback是个什么;调用时给它传递的是个函数 function(x,y,z){return (x+y+z);}作为参数,所以s的值就为返回的三个数相加的值。这就是个简单的使用回调函数的过程。