CommonJS编程
属于同步模块化编程,是三者中最先出现的,Node.js就是运用了它,这种写法适用于服务端,若是在浏览器环境,容易出现因为加载依赖的模块阻塞后续程序的正常执行,出现卡死状态。数组
加载模块:require('模块路径');浏览器
导出模块:module.exports = {};异步
AMD模块化
其实AMD 是 RequireJS 在推广过程当中对模块定义的规范化的产出,RequireJS 属于异步模块化编程。函数
首先定义模块:1.define('模块标识符',[依赖模块路径],回调函数);ui
CMD3d
以Sea.js为表明,它的依赖不是以数组的形式传递,而是以回调函数参数的形式传递,一共有三个参数,require,exports,module,具体以下图对象
定义模块:define(function(require,exports,module){});blog
加载模块:seajs.use(['依赖模块路径'],function(依赖模块名称){});
总结:
CommonJS和AMD的区别:
1.前者为同步加载,适用于服务端,后者为异步加载,适用于浏览器环境。
2.定义方式不一样,AMD须要用define和require来定义模块,但CommonJS能够直接像书写普通函数表达式同样书写。
3.导出方式不一样,CommonJS用module.exports导出一个对象,AMD直接在回调函数中return一个对象便可。
AMD和CMD的区别:
1.AMD依赖前置,CMD就近依赖。(简单说CMD的依赖模块再也不是以数组成员的方式做为参数进行传递,而是在回调函数中传入require,exports,module三个参数,而后按需加载依赖模块)。
2.AMD用require加载,CMD用seajs.use加载。