究竟什么是回调函数(Callback),网上有许许多多的文章,大部分看得人云里雾外,这些文章大概分成两类,第一类堆砌了太多的术语,基本上不明白术语就没法看,另一类反过来,不讲术语,完全是举一些脱离编程的生活化例子来类比,看的人更加晕头转向。
作为JS的核心,回调函数和异步执行是紧密相关的,不跨过这个门槛,很多回调代码能把人看晕!
引用stack overflow 上大神的描述 其实callback 很简单也很纯粹:
A "callback" is any function that is called by another function which takes the first function as a parameter. (在一个函数中调用另外一个函数就是callback)
以下是一个最简单的例子:
function a() {
return 1}
function b(aa) {
return 2 + aa}
//调用:var c=0c = b(a()) //A是个函数,但它又作为一个参数在B函数中被调用console.log(c) //结果显示3以上例子极易理解,下面再引入另一个概念:异步
看以下代码:
var a = 0
function bb(x) {
console.log(x)}
function timer(time) {
setTimeout(function () {
a=6
}, time);}
//调用:console.log(a)timer(3000)bb(a)以上代码很简单,我们需要的逻辑是,全局变量a初值为0,然后过3秒后,让它为6,然后再打印出来,看上去,上面的代码没有问题,理论上符合我们的逻辑需求,但却发现结果是这样:
0









