静文sophie

导航

 
//事件监听
var EventTarget = function( sender ){
    this._sender = sender;
    this._listeners = {};
}
EventTarget.prototype = {
    constructor: EventTarget,
    addListener: function(type, listener){
        if(typeof this._listeners[type] === 'undefined'){
            this._listeners[type] = [];
        }
        this._listeners[type].push(listener);
    },
    removeListener: function(type, listener){
        if(listener === undefined){
            _listeners[type] = [];
            return;
        }
        var listeners = this._listeners[type],
            index;
        if(Object.prototype.toString.call( listeners) === "[object Array]"){
            index = listeners.indexOf(listener);
            if(index >= 0){
                listeners.splice(index, 1);
            }
        }
    },
    fire: function(event){
        var _this = this,
            data = arguments.slice(1);
        if( typeof event === "string"){
            event = {type: evnet};
        }
        if(!event.target){
            event.target = _this;
        }
        if( !event.type){
            throw new Error('Event Object missing type property'); 
        }
        if(Object.prototype.toString.call(_this._listeners[event.type]) === "object Array"){
            var listeners = _this._listeners[event.type];
            listeners.foreach(function(item, index){
                item.call(_this, event, data);
            })
        }
    }
}

 

posted on 2015-08-23 12:43  静文sophie  阅读(149)  评论(0编辑  收藏  举报