来自子模块的JavaScript事件通知

时间:2015-12-18 09:51:29

标签: javascript design-patterns notifications

当前使用顶层模块的显示模块模式。主JS模块为应用程序提供了注册事件的界面。现在该库具有带名称空间的子模块。

例如:

Main = (function() {
    function on(event, fn) {
        ....;
    }
}());

Main.level1 = (function() {
    function level1() {
    }

    level1.prototype.dothis = function() {
        ....;
    }

    return level1;
}());

还有一个子子模块,如下所示

Main.level1.level2 = (function() {
    function level2() {
    }

    level2.prototype.dothis = function() {
        ....;
    }

    return level2;
}());

现在,如果子模块level2中的代码想要发出/触发事件,那怎么办呢?优雅的方式是主模块和子模块level1公开一个公共API,只要它想要向应用程序发出事件,它就会被level2调用。但这对于设计库/模块来说确实是一种糟糕的方式。有更好的方法吗?

更清楚 - 在使用显示模块模式和在多个文件中使用子模块时,我们如何处理事件通知?

0 个答案:

没有答案