1、Module模式模块化
Module模式具有模块化,可重用的基本特征,封装了变量和function,只暴露可用public的方法,其它私有方法全部隐藏。在没有使用模块化工具的情况下,用模块化的思想来编写整个JS结构。
例如下图,以webrtcUI层代码为例,MeetingMainPage为主模块,MeetingChatModule为挂载在MeetingMainPage下的子模块。请注意,这里存在一个依赖关系,需在MeetingMainPage定义前定义MeetingChatModule。
1)如果需要用到链式调用,请做好保护,如图中的A处;对于jQuery,链式调用是它的一个特色,推荐使用;
2)如果需要获取或设置模块中的私有变量,请用get、set的方式,如图中的B处;
2、SeaJS工具模块化
Seajs,是一个Web模块加载框架,遵循 CMD(Common Module Definition,通用模块定义) 规范,模块化JS代码。Seajs具有提高可维护性,模块化编程,动态加载,优化前端性能等优点。
例如下图,main.js为入口,ModuleA.js为子模块。