Lucius's Blog

JavaScript之十二 - CMD与AMD异同

  • 异步模块定义:AMD
  • 通用模块定义:CMD

AMD是RequireJs推广过程中产出,而CMD则是SeaJs。跟上一篇文章一样都是为了js的模块化开发,特别是在浏览器端,都能达到浏览器模块化开发的目的。

区别:

  1. 对于依赖的模块,AMD是提前执行,CMD是延迟执行。不过在RequireJs 2.0开始也可以改为延迟执行。

  2. CMD推崇依赖就近,AMD推崇依赖前置

// CMD

1
2
3
4
5
6
7
define(function(require, exports, module){
var a = require('./a');
a.doSomething();
//...
var b = require('./b');
b.doSomething();
});

// AMD

1
2
3
4
5
define(['./a', './b'], function(a, b) {
a.doSomething();
//...
b.doSomething();
});

参考知乎大神玉伯的回答

我只是试下能不能被赞赏😳