function Event() {
this._events = {};
}
Event.prototype.on = function(eventName, callback) {
if (this._events[eventName]) {
// 存放多个相同事件
this._events[eventName].push(callback);
} else {
this._events[eventName] = [callback];
}
}
Event.prototype.emit = function(eventName) {
var args = Array.prototype.slice.call(arguments).splice(1); // 获取第一个参数外的人所有参数
// 调用事件
if (this._events[eventName]) {
this._events[eventName].forEach(fn => fn(args));
}
}
var ev = new Event();
ev.on('eat', function(data) {
console.log('eat事件被触发');
console.log(data);
});
ev.emit('eat', 'rice');