您的位置:首页 > Web前端 > JavaScript

关于js中的回调函数问题

2016-10-28 15:17 429 查看
这样说可能简单些:回调函数是一个作为参数传给另一个函数的函数,另一个函数里面可以自由决定什么时候执行回调函数。比如当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();//异步回调
});

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: