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