• Pub/Sub模式


     1 var PubSub = {
     2     subscribe: function(ev, callback) {
     3         //创建 _callbacks 对象,除非它已经存在了
     4         var calls = this._callbacks || (this._callbacks = {});
     5         //针对给定的事件 ev 创建一个数组,除非这个数组已经存在
     6         //然后将回调函数追加到这个数组中
     7         (this._callbacks[ev] || (this._callbacks[ev] = [])).push(callback);
     8         return this;
     9     },
    10     publish: function() {
    11         //将 arguments 对象转换为真正的数组
    12         var args = Array.prototype.slice.call(arguments, 0);
    13         //拿出第1个参数,即事件名称
    14         var ev = args.shift();
    15 
    16         //如果不存在 _callbacks 对象,则返回
    17         //或者如果不包含给定事件对应的数组
    18         var list, calls, i, l;
    19         if (!(calls = this._callbacks)) return this;
    20         if (!(list = this._callbacks[ev])) return this;
    21 
    22         //触发回调
    23         for (i = 0, l = list.length; i < l; i++) {
    24             list[i].apply(this, args);
    25         }
    26         return this;
    27     }
    28 };
    29 
    30 //使用方法
    31 PubSub.subscribe("wem", function() {
    32     alert("Wem!");
    33 });
    34 
    35 PubSub.publish("wem");
  • 相关阅读:
    可多开窗口,但是不能同一个窗口多标签 keyshot
    AI符号 和 3DS 实例 有点像
    maya 显示 着色
    不懂
    Rhino 图层
    C4D 怎么学了一个多月还什么都不会
    测试音乐文件 wav mp3 mid
    CAD转CDR之类的会断点怎么解决
    javascript
    react脚手架搭建
  • 原文地址:https://www.cnblogs.com/qzsonline/p/2618272.html
Copyright © 2020-2023  润新知