<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      每周優秀代碼賞析系列【二】----Jif

      2011-10-30 12:06  【當耐特】  閱讀(3446)  評論(3)    收藏  舉報

      一.簡介

      Jif是一個輕量級的events,Jif提供了事件監聽on、發送send和清空clear接口,我們可以為其擴展remove 等接口。

      Jif也是觀察者模式的一種優雅實現。

       

      二.代碼公布

      下面就公布本周的優秀代碼:

              var Jif = function () {
                  this._listeners = {};
              };
      
              Jif.prototype = (function (undefined) {
                  return {
                      on: function (event, callback) {
                          if (this._listeners[event] === undefined) {
                              this._listeners[event] = [];
                          }
      
                          this._listeners[event].push(callback);
                      },
      
                      clear: function (event, callback) {
                          var listeners = this._listeners[event];
                          var i = listeners.length;
      
                          if (listeners === undefined) {
                              throw new Error('Unknown event type: ' + event);
                          }
      
                          if (callback === undefined) {
                              this._listeners[event] = [];
                              return;
                          }
      
                          while (i > 0) {
                              i -= 1;
                              if (listeners[i] === callback) {
                                  this._listeners[event].splice(i, 1);
                              }
                          }
                      },
               
                      send: function (event, msg) {
                          var listeners = this._listeners[event];
                          var i = listeners.length;
      
                          if (listeners === undefined) {
                              throw new Error('Unknown event type: ' + event);
                          }
      
                          while (i > 0) {
                              i -= 1;
                              listeners[i](msg);
                          }
                      }
                  };
              })();

       

       

      三.用法

              var events = new Jif();
              //訂閱天氣
              events.on('weather', function (weather) {
                  alert('today is   ' + weather.condition);
              });
              //發布天氣
              events.send('weather', { condition: 'sunny' });

      可以看得出來,這里實現了發布與訂閱,但是忽略了發布者和訂閱者的概念,而是統一由events中轉。

       

       

      四.其他相關鏈接

      Observer Design Pattern Using JavaScript:http://www.codeproject.com/KB/scripting/Observer_Pattern_JS.aspx

      javascript觀察者模式: http://www.rzrgm.cn/rubylouvre/archive/2010/03/29/1699203.html

      Javascript亂彈設計模式系列(1) - 觀察者模式(Observer):http://www.rzrgm.cn/liping13599168/archive/2009/01/01/1366599.html

      主站蜘蛛池模板: 西西人体大胆444WWW| 国产蜜臀视频一区二区三区 | 亚洲a人片在线观看网址| 亚洲精品在线二区三区| 亚洲国产精品男人的天堂| 2021亚洲国产精品无码| 99久久无码私人网站| 欧美日韩亚洲国产| 色婷婷亚洲精品综合影院| 久久视频这里只精品| 疯狂做受xxxx高潮欧美日本| 久久国产成人高清精品亚洲| www夜插内射视频网站| 日韩精品自拍偷拍一区二区| 国产欧美一区二区日本加勒比| 无码国产偷倩在线播放| 久久人与动人物a级毛片| 欧美三级中文字幕在线观看| 亚洲av无码乱码在线观看牲色| 人妻丰满熟妇av无码处处不卡| 黑人巨大精品欧美一区二区| 国产精品人伦一区二区三| 国内精品久久久久影院网站| 色综合久久精品亚洲国产| 亚洲国产成人久久精品APP | 极品无码国模国产在线观看| 国内精品无码一区二区三区| 国产又色又爽又黄的视频在线 | 国产精品白浆免费视频| 新丰县| 99精品国产综合久久久久五月天| 国产精品亚洲аv无码播放| 亚洲熟女乱色一区二区三区 | 久久毛片少妇高潮| 亚洲国产一区二区三区最新| 白白色发布永久免费观看视频| 一区二区在线观看 激情| 国产精品一码二码三码| 美乳丰满人妻无码视频| 香蕉在线精品一区二区 | 武装少女在线观看高清完整版免费 |