Asynchronous Module Definition 規(guī)范其實只有一個主要接口 define(id?, dependencies?, factory),它要在聲明模塊的時候指定所有的依賴 dependencies,并且還要當做形參傳到 factory 中,對于依賴的模塊提前執(zhí)行,依賴前置。
define("module", ["dep1", "dep2"], function(d1, d2) { return someExportedValue; }); require(["module", "../file"], function(module, file) { /* ... */ });
優(yōu)點:
適合在瀏覽器環(huán)境中異步加載模塊
可以并行加載多個模塊
缺點:
提高了開發(fā)成本,代碼的閱讀和書寫比較困難,模塊定義方式的語義不順暢
不符合通用的模塊化思維方式,是一種妥協(xié)的實現(xiàn)
實現(xiàn):
RequireJS
curl