什么是回调函数

编程分为两类:系统编程和应用编程
系统编程–就是编写库;
应用编程–就是利用写好的各种库来编写居右某种功能的程序,也就是应用。
程序员会给自己写的库留下一些接口,即API(application programming interface,应用程序接口),以供应用程序使用。
在程序跑起来的时候,应用程序会通过API调用库里所预先备好的函数。但是有些库函数却需要应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的,后又被调用的函数称为回调函数。

js的回调简单的例子:
function fn(arg1 , arg2 , callback){
var num = Math.ceil(Math.random
(arg1-arg2)+arg2);
callback(num);
}

fn(10 , 20, function(num){
console.log(“Callback called ! Num : “+num);
})

下面为AJAX加载XML文件示例:
function fn(url, callback){
var httpRequest;    //创建XHR
httpRequest = window.XMLHttpRequest ? new XMLHttpRequest() :   //针对IE进行功能性检测
    window.ActiveXObject ? new ActiveXObject(“Microsoft.XMLHTTP”) : undefined;

httpRequest.onreadystatechange = function(){
if(httpRequest.readystate === 4 && httpRequest.status === 200){  //状态判断
callback.call(httpRequest.responseXML);
}
};
httpRequest.open(“GET”, url);
httpRequest.send();
}

fn(“text.xml”, function(){
console.log(this);
});

console.log(“this will run before the above callback.”);

回调函数的传递:

.get(myhtmlpage.html,myCallBack);// .get(‘myhtmlpage.html’, myCallBack(‘foo’, ‘bar’));//这是错的,那么要带参数呢?
$.get(‘myhtmlpage.html’, function(){//带参数的使用函数表达式
myCallBack(‘foo’, ‘bar’);
});

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值