我主要还是做后台的东西多一些,前台真的是很小白!~
今天看jquery手册的时候,看到关于回调的一些使用,又学到一点,谨记之以备后查。
js里funciton是一等公民,跟java编程模型区别很大,关于js的回调使用的非常多,之前没有太多的总结。
例如jQuery里的ajax调用
$.get({'foo':'bar'},function(data){ //deal the data returned });
最简单的回调,也是使用最多的方式,通过匿名内部函数的方式。
但是如果是已经定义好的函数作为回调呢,主要分为如下两种情况:
- 无参回调函数
function handle(){ //some bussiness logic }
回调可以这么写,就可以直接调用对应的函数:
$.get({'foo':'bar'},handle);
- 有参数的回调函数
// some bussiness logic }
这时候如果直接使用按照无参的方式使用,写成
$.get({'foo':'bar},handle(data));
这种方式就会有问题了,因为如果这么写的话,handle(data)会先执行,并使用返回结果调用get方法,这样的回调
结果一定是不正确的,那么正确的做法应该是:
$.get({'foo':'bar'},function(data){handle(data)})
添加一个层匿名函数的封装,在匿名函数里进行有参回调函数的调用, 就是使用匿名内部函数来实现参数的传递。