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

    var Observer = (function(){
    var _messages = {};
    return {
    regist : function(type,fn){
    if(typeof _messages[type] === 'undefined'){
    _messages[type] = [fn];
    }else{
    _messages[type].push(fn);
    }
    },
    fire : function(type, args){
    if(!_messages[type])
    return;
    var events = {
    type : type,
    args : args || {}
    },
    i=0,
    len = _messages[type].length;
    for(;i < len; i++){
    _messages[type][i].call(this, events);
    }
    },
    remove : function(type){
    if(_messages[type] instanceof Array){
    var i = _messages[type].length - 1;
    for(; i >= 0; i--){
    _messages[type][i] === fn && _messages[type].splie(i, 1);
    }
    }
    }
    }
    })();

    Observer.regist('test', function(e){
    console.log(e.type, e.args.msg);
    });

    Observer.fire('test', {msg:'传递参数'});

      

  • 相关阅读:
    例6-5
    例6-3
    例6-2
    例6-1
    例5-9
    python3
    python3
    python3
    python3
    python3
  • 原文地址:https://www.cnblogs.com/iloveyou-sky/p/6372484.html
Copyright © 2011-2022 走看看