CommonJS編程
屬於同步模塊化編程,是三者中最先出現的,Node.js就是運用了它,這種寫法適用於服務端,若是在瀏覽器環境,容易出現因爲加載依賴的模塊阻塞後續程序的正常執行,出現卡死狀態。數組
加載模塊:require('模塊路徑');瀏覽器
導出模塊:module.exports = {};異步
AMD模塊化
其實AMD 是 RequireJS 在推廣過程當中對模塊定義的規範化的產出,RequireJS 屬於異步模塊化編程。函數
首先定義模塊:1.define('模塊標識符',[依賴模塊路徑],回調函數);ui
CMD3d
以Sea.js爲表明,它的依賴不是以數組的形式傳遞,而是以回調函數參數的形式傳遞,一共有三個參數,require,exports,module,具體以下圖對象
定義模塊:define(function(require,exports,module){});blog
加載模塊:seajs.use(['依賴模塊路徑'],function(依賴模塊名稱){});
總結:
CommonJS和AMD的區別:
1.前者爲同步加載,適用於服務端,後者爲異步加載,適用於瀏覽器環境。
2.定義方式不一樣,AMD須要用define和require來定義模塊,但CommonJS能夠直接像書寫普通函數表達式同樣書寫。
3.導出方式不一樣,CommonJS用module.exports導出一個對象,AMD直接在回調函數中return一個對象便可。
AMD和CMD的區別:
1.AMD依賴前置,CMD就近依賴。(簡單說CMD的依賴模塊再也不是以數組成員的方式做爲參數進行傳遞,而是在回調函數中傳入require,exports,module三個參數,而後按需加載依賴模塊)。
2.AMD用require加載,CMD用seajs.use加載。