AMD (RequireJS)
-
AMD = Asynchronous Module Definition,即 异步模块定义。
-
AMD 规范加载模块是异步的,并允许函数回调,不必等到所有模块都加载完成,后续操作可以正常执行(依赖前置,提前执行)。
// AMD 默认推荐的是
define(['./a', './b'], function(a, b) {
// 依赖必须一开始就写好
a.doSomething()
// 此处略去 100 行
b.doSomething()
// ...
})
CMD (SeaJS)
-
CMD = Common Module Definition,即 通用模块定义。CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
-
CMD中,模块作为依赖且被引用时才会初始化,否则只会加载。
// CMD 默认推荐的是
define(function(require, exports, module) {
// 获取模块 a 的接口
var a = require('./a')
// 调用模块 a 的方法,就近依赖
a.doSomething()
// 获取模块 b 的接口
var b = require('./b')