您的位置:首页 > Web前端 > JavaScript

50、JavaScript里面,自定义事件的简单实现(事件队列的简单实现)

2016-08-02 21:44 666 查看
1、JavaScript里面,自定义事件的简单实现(事件队列的简单实现)

2、实现的代码

var Event = {
on: function(eventName, callback) {
//下面的两个undefined的判断很重要
//保证了,动态的初始化了,对象的属性
if(typeof Event.handlers == "undefined") {
Event.handlers = {};
}
if(typeof Event.handlers[eventName] == "undefined") {
Event.handlers[eventName] = [];
}
Event.handlers[eventName].push(callback);

},
emit: function(eventName) {
//只有含有这个,时间的时候,才会调用回调函数
if(Event.handlers[eventName] instanceof Array) {
var handler = Event.handlers[eventName];
for(var i = 0, len = handler.length; i < len; i++) {
handler[i](arguments[1]);
}
}

},
removeHandler: function(type, handler) {
if(Event.handlers[type] instanceof Array) {
var handlers = Event.handlers[type];
for(var i = 0, len = handlers.length; i < len; i++) {
if(handlers[i] === handler) {
break;
}
}
handlers.splice(i, 1);
}
}

}

3、测试代码

function a(result) {
console.log(result);
}

function b() {
console.log('test');
}
Event.on('test', a);
Event.on('test', b);
//Event.removeHandler('test', b);
Event.emit('test', 'hello world');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息