CMD規範:是SeaJS 在推廣過程當中對模塊定義的規範化產出的。javascript
AMD規範:是 RequireJS 在推廣過程當中對模塊定義的規範化產出的java
// CMD
define(function(require, exports, module) { var a = require('./a') a.doSomething() // 此處略去 100 行
var b = require('./b') // 依賴能夠就近書寫
b.doSomething() // ...
})
其中require,export,module是cmd自帶的封裝方法(自帶API)
// AMD 默認推薦的是 define(['./a', './b'], function(a, b) { // 依賴必須一開始就寫好 a.doSomething() // 此處略去 100 行 b.doSomething() ... })
其中['./a', './b']是依賴模塊,a是模塊提供的API
比較上述2種模塊化方式:
CMD規範是將模塊的引用和加載放到了模塊實際要用的時候加載,而AMD規範則是預加載,就是在使用的時候先對依賴的所有文件進行加載,加載完了再進行處理,
require調用模塊,define定義模塊,config是配置模塊。
總結:CMD是延遲執行的,而AMD是提早執行的。