发布订阅(第2天)

//发布 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('失恋', '我', '你');
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天送张先生出差,从高铁站回来的时候特意走的北京路,在我还经常坐高铁的时候,那边有天昕大厦,沧兴大厦,宏宇大厦,今...
    许小慢慢阅读 268评论 0赞 0
  • When understanding arises, the mind is strong.There is no...
    第三个选项阅读 217评论 0赞 0
  • 她姓苏, 她不爱哭。 可是我却见过她哭。 因为求而不得而哭, 因为自己的付出而哭, 因为自己很想他而哭。 我不忍看...
    李木只阅读 283评论 9赞 5
  • 09 酒店 Brian拿着两张房卡,把其中一张递给少年,随机转身把自己套间的房门打开。谁料,迷迷糊糊的Justin...
    AnsonYip阅读 465评论 0赞 0

友情链接更多精彩内容