AMD 是 RequireJS 在推广过程中对模块定义的规范化产出.
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出.
类似的还有 CommonJS Modules/2.0 规范, 是 BravoJS 在推广过程中对模块定义的规范化产出.
还有不少??
这些规范的目的都是为了 JavaScript 的模块化开发, 特别是在浏览器端的.
目前这些规范的实现都能达成浏览器端模块化开发的目的.
区别:
1. 对于依赖的模块, AMD 是提前执行, CMD 是延迟执行. 不过 RequireJS 从 2.0 开始, 也改成可以延迟执行 (根据写法不同, 处理方式不同).CMD 推崇 as lazy as possible.
2. CMD 推崇依赖就近, AMD 推崇依赖前置
来源: http://www.bubuko.com/infodetail-2576397.html