关于js中的回调函数问题

这样说可能简单些:回调函数是一个作为参数传给另一个函数的函数,另一个函数里面可以自由决定什么时候执行回调函数。比如当ajax请求完成时,会执行你写的回调函数,又比如侦测到用户点击了按钮,会执行你写的回调函数。

function caonima(a,b,callback) {
    var c = a+b; // 当前函数执行得到了一个结果
    alert(c);
    callback(c);//这个就是传入的回调函数,外部传入的函数,使用当前函数产生的结果,做些事情
}
// 定义了一个函数,用于回掉
function haha(c) {
    alert('这是回调函数获取到的值:'+c);
    alert('这就是我这个回调函数干的事情');
}
var a = 1;
var b = 2;
//1: caonima(a,b,haha);
// 传入haha回调函数

//2: caonima(a,b,function(c) { alert('这是传入的匿名回调函数'); });

回调有同步回调和异步回调:

同步回调就是当你函数里东西执行完了之后,再去执行你传入的回调函数。

异步回调一般是指,你这个函数需要执行很久时间,这个时候为了避免堵塞,可以允许你传入的回调函数不需要等待,而是继续先执行

function myLogicSync(callback){
    callback();//同步回调
}

function myLogicAsync(callback){
    setTimeout(function(){
        callback();//异步回调
    });
    
}
原文地址:https://www.cnblogs.com/joesbell/p/6007977.html