古詩詞大全網 - 成語用法 - AMD 和 CMD 的區別有哪些

AMD 和 CMD 的區別有哪些

CMD 是 SeaJS 在推廣過程中對模塊定義的規範化產出。 類似的還有 CommonJS Modules/2.0 規範,是 BravoJS 在推廣過程中對模塊定義的規範化產出。 還有不少6868 這些規範的目的都是為了 JavaScript 的模塊化開發,特別是在瀏覽器端的。 目前這些規範的實現都能達成瀏覽器端模塊化開發的目的。 區別: 1. 對於依賴的模塊,AMD 是提前執行,CMD 是延遲執行。不過 RequireJS 從 2.0 開始,也改成可以延遲執行(根據寫法不同,處理方式不同)。CMD 推崇 as lazy as possible. 2. CMD 推崇依賴就近,AMD 推崇依賴前置。

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有全局的和局部的