zoukankan      html  css  js  c++  java
  • 《JS设计模式笔记》 3,观察者模式

      

     1 <script type="text/javascript">
     2     //挂插着模式又叫发布订阅模式应该是最常用的模式
     3 
     4     //1,dom事件就是观察者模式,只要订阅了click事件,当点击div的时候,function click就会触发。
     5     div.onclick=function click() {
     6         alert("click");
     7     }
     8      
     9      //2 
    10      loadImage(imgAry,function(){
    11          Map.init();
    12          Gamer.init();
    13      });
    14      loadImage(imgAry,function(){
    15          Map.init();
    16          Gamer.init();
    17          Sound.Init();
    18      });
    19 
    20      loadImage.listen("ready",function(){
    21          Map.init();
    22      });
    23      loadImage.listen("ready",function(){
    24          Gamer.init();
    25      });
    26      loadImage.listen("ready",function(){
    27          Sound.init();
    28      });
    29      //3,
    30      Events=function(){
    31          var listen,log,obj,one,remove,trigger,__this;
    32          obj={};
    33          __this=this;
    34          listen=function(key,eventfn){
    35              var stack,_ref;
    36              stack=(_ref=obj[key])!=null?_ref:obj[key]=[];
    37              return stack.push(eventfn);
    38          };
    39          one=function(key,eventfn){
    40              remove(key);
    41              return listen(key,eventfn);
    42          };
    43          remove=function(key){
    44              var _ref;
    45              return (_ref==obj[key])!=null?_ref.length=0:void 0;
    46          };
    47          trigger=function(){
    48              var fn,stack,_i,_len,_ref,key;
    49              key=Array.prototype.shift.call(arguments);
    50              stack=(_ref=obj[key])!=null?_ref:obj[key]=[];
    51              for(_i=0,_len=stack.length;_i<_len;_i++){
    52                  return false;
    53              }
    54          };
    55          return{
    56              listen:listen,
    57              one:one,
    58              remove:remove,
    59              trigger:trigger
    60          };
    61      };
    62 
    63      var adultTV=Events();
    64      adultTV.listen("play",function(data){
    65          alert("今天XXXXX"+data.name);
    66      });
    67      adultTV.trigger("play",{"name":"XX"});
    68      </script>
  • 相关阅读:
    图片轮播切换
    php用get_meta_tags轻松获取网页的meta信息
    PHP创建桌面快捷方式实例
    php 获取网站根目录的写法
    php mkdir 创建多级目录实例代码
    php计算剩余时间的自定义函数
    php实现获取汉字的首字母实例
    PDO封装函数
    Struts动态表单(DynamicForm)
    [WPF]静态资源(StaticResource)和动态资源(DynamicResource)
  • 原文地址:https://www.cnblogs.com/lvyongbo/p/4700124.html
Copyright © 2011-2022 走看看