function EventCenter() {
// 事件中心
this.subs = {};
}
// 订阅
EventCenter.prototype.$on = function (event, callback) {
if (this.subs[event]) {
this.subs[event].push(callback);
}
else {
this.subs[event] = [callback];
}
}
// 发布
EventCenter.prototype.$emit = function (event, ...rest) {
if (!this.subs[event]) {
return;
}
this.subs[event].forEach(cb => {
cb(...rest);
})
}
const bus = new EventCenter();
bus.$on('click', function () {
console.log('订阅1 = ', ...arguments); // 订阅1 = 1 2 3 4 上山打老虎
})
bus.$on('click', function () {
console.log('订阅2 = ', ...arguments); // 订阅2 = 1 2 3 4 上山打老虎
})
bus.$emit('click', 1, 2, 3, 4, '上山打老虎');
小dom记录发布/订阅模式
最新推荐文章于 2024-07-20 10:36:53 发布