Module(模块)模式
能清晰分离和组织项目中的代码单元
通常有以下四种方式实现:
对象字面量
var myModule = { myProperty: 'someProperty', myMethod: function() { return "this is myMethod" } } myModule.myMethod(); // 调用方法
Module模式
var myModule = (function() { var myProperty; return { myMethod: function() { return "this is myMethod"; } } })();
- AMD模式
- CommonJS模块
- ECMAScript Harmmory模块
上面三种迟点写例子介绍、
Module模式: 在传统软件工程中,是为类提供私有和公有的封装方法,主要是使用闭包封装私有状态和组织,提供一种包装公有私有和变量的方式,防止其泄露至全局作用域。
模式变化
包括以下两种:
引入混入
这种就是DOJO,ExtJS,JQ等的实现
引出
就是上面Module模式的实现
优缺点
优点: 支持私有数据
缺点:
- 改变数据可见性,修改时,需要每个修改
- 无法为使用为私有成员创建自动化测试