阅读layim代码小记,监听事件实现方法

时间:2021-01-29 08:31:51
    (function (win) {
//注册事件
var chat = function () {
$('#open').on('click', function () {
sendMessage();
})
} var call = {}; //监听事件
chat.prototype.on = function (events, callback) {
if (typeof callback === 'function') {
call[events] ? call[events].push(callback) : call[events] = [callback];
console.log(call);
}
return this;
}
//内部事件
var sendMessage = function () {
console.log('dosomething');
var data = { d: 'somedata' };
//这里需要循环,如果外边没有执行 on 监听,这里会报错
call.sendMessage[0](data);
} win.chat = new chat();
})(window); //外部监听sendMessage方法
chat.on('sendMessage', function (msg) {
console.log(msg);
console.log('监听到sendMessage方法');
});

  以前经常用定义callback方法实现对事件调用成功之后的处理,这种 on方法很像 document.on 虽然,我不知道document.on 是不是这么实现的。