在WEB开发当中,js有着举足轻重的作用。作为一门开发语言,js有着不用与常规语言的特色,如回调函数,匿名函数,函数闭包,原型等。本文作为第一篇,系列总结一下个人对于JS的理解。个人原创,因水平有限如有错误不吝赐教。
回调函数并不是JS专有的概念,但是在JS当中回调到处可见。比如我们使用jquery,整个ajax系列函数都有一个callback。这个callback是怎么回事呢,就是当操作执行完毕后进行后续处理。由于js是客户端脚本,需要进一步处理的数据是不确定的,因为它请求的是服务器数据,而这个数据是不确定的。因此回调大有用武之地了。其他的服务器编程语言弱化了回调函数,使用的很少。
通俗的用法是这样的,
$.ajax({
url:xxx,
method:POST,
success:function(res){
//处理res返回的数据
}
error:function(res){
//错误处理
}
});
success函数就是回调函数,为什么success方法能处理ajax返回的数据呢?这个res是什么?怎么传到success方法里面去的呢?以及怎么知道该调用success还是error方法呢?
好了,本文主要讲的就是这个问题。知其然知其所以然,简单说一下我的理解,因为以前对这个还是比较困惑的。
假如我自己封装了一个ajax函数。
function ajax(obj){ //传入参数obj,对象
var url=obj.url,
var method=obj.url,
//进行一系列处理
……
if(xhr.success==200){
obj.success(xhr.responseText);
}
}
调用方式如下:
ajax({
url:xxx.
method:POST,
success:function(res){
//处理
}
});
因此可以看出并不是数据res丢给回调方法,回调方法属于形参,而不是实参。回调方法作为形参的话有什么好处呢,我们可以很方便的进行后续处理。
OK,回调函数就是这么回事了,下一篇讲一下JS当中的闭包。