//利用队列来实现函数的顺序执行
function test(list,callback){
var task;
task = list.shift();
if(task){
task();
}
if(list.length > 0){
arguments.callee(list,callback);
}else{
callback();
}
}
var list = [function(){console.log("first")},function(){console.log("second")}];
var callback = function(){console.log("callback");};
test(list,callback);
我们换成jQuery提供的方式:
var callbacks = $.Callbacks();
callbacks.add(function() {
alert('a');
})
callbacks.add(function() {
alert('b');
})
callbacks.fire(); //输出结果: 'a' 'b'
是不是便捷很多了,代码又很清晰,所以Callbacks它是一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。
那么我们使用回调函数,总的来说弱化耦合,让调用者与被调用者分开,调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件的被调用函数。