模块化规范理解
什么是模块化?
把一个复杂的代码程序按照一定的规则封装成几个块或几个文件,然后组合到一起
模块化的进化过程
- 全局function模式
- namespace模式
编码: 将数据/行为封装到对象中
解决: 命名冲突(减少了全局变量)
问题: 数据不安全(外部可以直接修改模块内部的数据)
var abc = {
a: function(){}
b: function(){}
}
- IIFE模式/增强(匿名闭包)
模块化规范
常见的模块化规范
- CommonJS:NodeJS模块系统具体实现的基石。
- AMD:异步模块规范,是RequireJS在推广过程中对模块定义的规范化产出的,推崇依赖前置;
- UMD:兼容AMD和commonJS规范的同时,还兼容全局引用的方式;
- CMD:是SeaJS 在推广过程中对模块定义的规范化产出的,推崇依赖就近;
- ES6:ES6模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量;