1.Javascript不是一種模塊化編程語言,它不支持"類"(class),更不用說"模塊"(module)了(es6支持類和模塊化)es6
AMD(異步執行) 是 RequireJS 在推廣過程當中對模塊定義的規範化產出。
CMD (同步執行)是 SeaJS 在推廣過程當中對模塊定義的規範化產出。編程
都是爲了 JavaScript 的模塊化開發,都能達成瀏覽器端模塊化開發的目的。瀏覽器
區別:
1. 對於依賴的模塊,
AMD 是提早執行,
CMD 是延遲執行。不過 RequireJS 從 2.0 開始,也改爲能夠延遲執行(根據寫法不一樣,處理方式不一樣)。CMD 推崇 as lazy as possible.
2. CMD 推崇
依賴就近,AMD 推崇
依賴前置。
AMD在一開始就要加載它所依賴的所有項,而CMD則是須要用到哪一個具體的依賴項纔會去執行。
雖然 AMD 也支持 CMD 的寫法,同時還支持將 require 做爲依賴項傳遞,但 RequireJS 的做者默認是最喜歡上面的寫法,也是官方文檔裏默認的模塊定義寫法。
3. AMD 的 API 默認是
一個當多個用,CMD 的 API 嚴格區分,推崇
職責單一。
好比 AMD 裏,require 分全局 require 和局部 require,都叫 require。CMD 裏,沒有全局 require,而是根據模塊系統的完備性,提供 seajs.use 來實現模塊系統的加載啓動。CMD 裏,每一個 API 都
簡單純粹。
************************************
推薦你們去阮一峯大神的博客參考關於AMD的資料哦!