jQuery中回调函数的设计与实现

前端之家收集整理的这篇文章主要介绍了jQuery中回调函数的设计与实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.观察者模式

  1. //当一个对象改变,同时要改变其他对象,但不知道要改变多少个其他对象的时候,就应该使用观察者模式
  2. function show(name){
  3. console.log(name);
  4. }
  5. var objservable = {

  6. cbArr: [],add: function(fun){

  7. this.cbArr.push(fun);

  8. },fire: function(){

  9. this.cbArr.forEach(function(fun){

  10. fun(data);

  11. })

  12. }

  13. }

  14. // 开始订阅

  15. obj.add(function(){ console.log(1) });

  16. obj.add(function(){ console.log(2) });

  17. // 开始发布

  18. obj.fire();

2.模式的实际运用

  1. $({ url: 'index.PHP',context: dataObj}).done(function(data){
  2. $('div').html(data);
  3. $('div').animate();
  4. $('div').show;
  5. });
  6. // 在回调中做一系列的任务过于繁琐,那么观察者模式可以很好的解决这个问题;
  7. observable.add(function(data){
  8. $('div').html(data);
  9. })
  10. observable.add(function(data){
  11. if(data.status){
  12. $('div').animate();
  13. }
  14. })
  15. observable.add(function(data){
  16. $('div').show();
  17. })
  18. $({ url: 'index.PHP',context: dataObj}).done(function(data){
  19. observable.fire(data);
  20. })

总的来说,观察者模式就是在解耦,让耦合的双方都依赖于抽象,而不依赖于具体,从而达到,一边的变化不会影响到另一边。

猜你在找的程序笔记相关文章