1、從官方推薦的寫法上面得出:
CMD ----- 依賴就近
Js代碼
//CMD
define(function(require,exports,module){
var a = require('./a');
a.doSomthing();
});
AMD ----- 依賴前置
Js代碼
//AMD
define(['./a','./b'],function(a,b){
//......
a.doSomthing();
//......
b.doSomthing();
})
當然AMD也支持CMD的寫法。
2、執行順序上:
CMD是延遲執行
推崇的是as lazy as possible
AMD是提前執行
requireJS從2.0開始可以延遲執行
3、api設計角度:
CMD的API推崇職責單壹,沒有全局的require
AMD的API默認是壹個當多個用:比如require有全局的和局部的