js模块化编程总结
CommonJs
一个更偏向于服务器端的规范,同步加载模块
require命令第一次加载该脚本时就会执行整个脚本,然后在内存中生成一个对象.
// math.js
exports.add = function(a, b) { return a + b; }
//index.js
var math = require('math'); math.add(2, 3); // 5
运用:nodeJS
AMD (Asynchronous Module Definition)(异步模块定义)
异步指的是不堵塞浏览器其他任务(dom构建,css渲染等),而加载内部是同步的(加载完模块后立即执行回调)
AMD是依赖前置的
define(id?, dependencies?, factory)
require([module], callback);
CMD
依赖就近,延迟执行
define(factory)
UMD
兼容各种加载规范
ES6
import命令用于输入其他模块提供的功能,export命令用于规定模块的对外接口
link:http://blog.csdn.net/Real_Bird/article/details/54869066