zoukankan      html  css  js  c++  java
  • js观察者模式

    var pubsub = (function(){
        var q = {}
            topics = {},
            subUid = -1;
        //发布消息
        q.publish = function(topic, args) {
            if(!topics[topic]) {return;}
            var subs = topics[topic],
                len = subs.length;
            while(len--) {
                subs[len].func(topic, args);
            }
            return this;
        };
        //订阅事件
        q.subscribe = function(topic, func) {
            topics[topic] = topics[topic] ? topics[topic] : [];
            var token = (++subUid).toString();
            topics[topic].push({
                token : token,
                func : func
            });
            return token;
        };
        //取消订阅
        q.canclesub=function(subtoken){
             for (var m in topics) {
                if (topics[m]) {
                    for (var i = 0; i < topics[m].length; i++) {
                        if (topics[m][i].token === subtoken) {
                            topics[m].splice(i, 1);
                            return subtoken;
                        }
                    }
                }
            }
            return false;  
        }
        return q;
    })();
    //触发的事件
    var logmsg = function(topics, data) {
        console.log("logging:" + topics + ":" + data);
    }
    //红眼睛订阅 'wolfcoming'
    var a = pubsub.subscribe('wolfcoming', logmsg);
    //长耳朵订阅 'wolfcoming'
    var b = pubsub.subscribe('wolfcoming', logmsg);
    //短尾巴订阅 'wolfcoming'
    var c = pubsub.subscribe('wolfcoming', logmsg);
    //发布消息狼来了
    pubsub.publish('wolfcoming', '狼来了');
    //兔妈妈回来了兔宝宝退订
    pubsub.canclesub(a);
    pubsub.canclesub(b);
    pubsub.canclesub(c);
    //发布消息狼来了
    pubsub.publish('wolfcoming', '狼来了');
    

      

  • 相关阅读:
    HO引擎近况20210912
    查询超时问题的处理
    ubuntu根据关键词批量杀进程
    创建notebook适用的虚拟环境
    信赖域策略优化(Trust Region Policy Optimization, TRPO)
    强化学习(Reinforcement Learning)
    生成对抗网络(GAN与W-GAN)
    卷积神经网络CNN
    循环神经网络RNN
    PyTorch自动求导
  • 原文地址:https://www.cnblogs.com/bweb/p/5754225.html
Copyright © 2011-2022 走看看