杰拉斯的博客
[设计模式]JavaScript钩子机制的应用场景与实现
杰拉斯 | 时间:2013-10-29, Tue | 32,062 views前端开发
当我们面对比较复杂的前端项目时,我们经常会采用模块化的方式来对JavaScript代码进行解耦,以方便对代码的管理和维护,以下是一个简单的立即执行函数实现的模块化例子:
var Common = (function(){ var func = function(){ // 全局公用方法 } return { func : func } })(); var ModuleA = (function(){ var _count = 1; var init = function(){ // 独立模块逻辑 } var getCount = function(){ return _count; } return { init : init, getCount : getCount } })();
模块只对外暴露外部需要的接口,而外部模块不需要关心其内部的运行逻辑,只需要知道调用接口的方式和返回结果,这样就实现了模块的“低耦合,高内聚”。
看起来很美好,可是当项目的逻辑变的越来越复杂时,比如A模块中某个针对全局公用的逻辑,可能在B模块的某种特定情况下需要进行一些额外的逻辑操作,该怎么办呢?