CMD
是國內玉伯大神在開發SeaJS
的時候提出來的,屬於CommonJS
的一種規範,此外還有AMD
,其對於的框架是RequireJS
1、二者都是異步模塊定義(Asynchronuous Module Definition)的一個實現;
2、CMD
和AMD
都是CommonJS
的一種規範的實現定義,RequireJS
和SeaJS
是對應的實踐;
3、CMD
和AMD
的區別:CMD
相當於按需加載,定義一個模塊的時候不需要立即制定依賴模塊,在需要的時候require就可以了,比較方便;而AMD
則相反,定義模塊的時候需要制定依賴模塊,並以形參的方式引入factory中。
區別看下邊例子:
//AMD方式定義模塊
define(['dep1','dep2'],function(dep1,dep2){
//內部只能使用制定的模塊
return function(){};
});
//CMD
define(function(require,exports,module){
//此處如果需要某XX模塊,可以引入
var xx=require('XX');
});
4、JavaScript語言是弱結構性的,通過CommonJS
定義一些規範,CMD
和AMD
得定義模塊的方式對代碼進行管理,使得更易維護;此外,NodeJS
的誕生,對模塊的規範定義,和包(NPM)的概念的引入,讓JS管理不再困難,一個字,爽爆了!