Qbian61 / Event

观察者模式

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Event

观察者模式

不超过 25 行的观察者模式

window.Event = (function() {
    function Event() {
        this._events = {};
    }
    Event.prototype = {
        emit: function(name, obj) {
            if(name in this._events) {
                for(var i = 0, len = this._events[name].length; i < len; ++ i) {
                    this._events[name][i](obj);
                }
            }
        },
        on: function(name, callback) {
            if(!(name in this._events)) this._events[name] = [];
            this._events[name].push(callback);
        },
        remove: function(name, callback) {
            this._events[name] ? this._events[name].splice(this._events[name].indexOf(callback), 1) : void 0;
        },
        removeAll: function(name) {
            this._events[name] = [];
        }
    };
    return Event;
})();

About

观察者模式


Languages

Language:JavaScript 100.0%