CommonJS 是javascript模块化编程的一种规范,主要是在服务器端模块化的规范。
require()用来引入外部模块;exports对象用于导出当前模块的方法或变量,唯一的导出口;module对象就代表模块本身。AMD是”Asynchronous Module Definition”的缩写,意思就是”异步模块定义”,模块的加载不影响它后面语句的执行
AMD就只有一个接口:define(id,dependencies,factory);CMD是在AMD基础上定义的
CMD和AMD的区别有以下几点:
1.对于依赖的模块AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执行(根据写法不同,处理方式不通过)。
2.CMD推崇依赖就近,AMD推崇依赖前置。
1 | define(['./a','./b'], function (a, b) { //依赖一开始就写好 a.test(); b.test(); }); //CMD define(function (requie, exports, module) { //依赖可以就近书写 var a = require('./a'); a.test(); ... //软依赖 if (status) { var b = requie('./b'); b.test(); } }); |