JS中发布/订阅模式的简单应用

在个模式的好处自安于能够对代码进行解耦,实现了“高内聚,低耦合”的理念。
1.建立一个事件总线。
2.发布事件。
3.订阅事件。

//事件总线,管理事件
class Notcice {
    #arr = new Map()
    constructor() {

    }
    add(str, fn) {
        if (this.#arr.has(str)) {
            this.#arr.set(str, fn)
        } else {
            throw new Error("这个事件已经被注册了")
        }

    }
    emit(str, params) {
        if (this.#arr.has(str)) {
            this.#arr.get(str)(params);
        } else {
            throw new Error("别TM瞎掉")
        }
    }
}
//new 一个实例,并且一直用这个实例,保证我们的只有一个总线
let myNotice = new Notcice()
//发布一个eat事件
myNotice.add("eat", (params) => {
    console.log(`吃${params}`);
})
//订阅
myNotice.emit("eat", "苹果")

是不是很简单啊?喜欢的小伙伴留言点赞关注吧!

你可能感兴趣的:(javascrip基础知识)