当前使用顶层模块的显示模块模式。主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调用。但这对于设计库/模块来说确实是一种糟糕的方式。有更好的方法吗?
更清楚 - 在使用显示模块模式和在多个文件中使用子模块时,我们如何处理事件通知?