//发布 emit 订阅 on {失恋:['哭','吃','购物']}
//一对多 多对一的关系
function Girl() { //创建对象
this._events = {} //对象的事件集合
} // {失恋:[cry]}
Girl.prototype.on = function (eventName, callback) { //订阅
if (this._events[eventName]) { //判断是不是第一次--不是第一次
this._events[eventName].push(callback); //{失恋:[cry,eat,shopping]}
} else {
this._events[eventName] = [callback] //{失恋:[cry]
}
};
Girl.prototype.emit = function (eventName, ...args) { //发布
if (this._events[eventName]) {
this._events[eventName].forEach(cb => cb.apply(this, args));
// forEach(cb=>cb(...args));
}
};
let girl = new Girl();
let cry = (who) => {
console.log(who + '哭')
};
let eat = (who) => {
console.log(who + '吃')
};
let shopping = (who) => {
console.log(who + '购物')
};
girl.on('失恋', cry); // {失恋:[cry]
girl.on('失恋', eat); //{失恋:[cry,eat]
girl.on('失恋', shopping); //{失恋:[cry,eat,shopping]
girl.emit('失恋', '我', '你');
发布订阅(第2天)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...