什么是回调函数
先说这么一个例子,你去店里买东西,店员告诉你卖光了,你在那里留了个电话要求他们上货之后立刻通知你,三天后店员电话通知了你,你买到了商品.在这个例子中,手机号便是回调函数,预留手机号便是注册回调函数,如果你没有预留电话号,那么你这三天内需要不断的跑来跑去直到商店进了新商品才结束,很麻烦.
首先要了解的是,在 js 中,函数也是对象,可以赋值给变量,可以作为参数放在函数的参数列表中.比如:
var fun = function(a ,b ){
//this is a js function
return a+b;
}
这段代码的意思是一个带有两个参数的匿名函数,将函数赋值为变量fun,接下来我们调用它:
console.log(fun(2.3));
这样回输出5.
在js中,同样可以将函数作为参数形式传入另一个函数,如
var doit = function(callback) { var a = 1, b = 2, c = 3; var t = callback(a,b,c); return t + 10; }; var d = doit(function(x,y,z){ return (x+y+z); }); console.log(d);首先,定义了匿名函数并命名为doit,参数为callback,由代码第四行可知参数是一个函数,且方法体未知.并将该方法的返回值赋给t,返回t+10. 接下来我们看看如何调用该函数呢,将匿名函数带入,并将返回值赋给d,故而最后输出值为x+y+z+10. 由此来看,js可以将函数作为参数、作为变量来使用.