美文网首页前端待看
实现一个 EventEmitter

实现一个 EventEmitter

作者: waka | 来源:发表于2017-06-13 16:09 被阅读345次

    https://scriptoj.com/problems/36

    class EventEmitter {
    
        constructor() {
            this.messageBox = {};
        }
    
        on(eventName, func) {
            const callbacks = this.messageBox[eventName] || [];
            callbacks.push(func);
            this.messageBox[eventName] = callbacks;
        }
    
        emit(eventName, ...args) {
            const callbacks = this.messageBox[eventName];
            if (callbacks.length > 0) {
                callbacks.forEach((callback) => {
                    callback(...args);
                });
            }
        }
    
        off(eventName, func) {
            const callbacks = this.messageBox[eventName];
            const index = callbacks.indexOf(func);
            if (index !== -1) {
                callbacks.splice(index, 1);
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:实现一个 EventEmitter

        本文链接:https://www.haomeiwen.com/subject/pvndqxtx.html