該規範的核心思想是容許模塊經過 require 方法來同步加載所要依賴的其餘模塊,而後經過 exports 或 module.exports 來導出須要暴露的接口node
require("module"); require("../file.js"); exports.doStuff = function() {}; module.exports = someValue;
優勢:jquery
缺點:git
實現:github
Asynchronous Module Definition 規範其實只有一個主要接口 define(id?, dependencies?, factory),它要在聲明模塊的時候指定全部的依賴 dependencies,而且還要當作形參傳到 factory 中,對於依賴的模塊提早執行,依賴前置。瀏覽器
define("module", ["dep1", "dep2"], function(d1, d2) { return someExportedValue; }); require(["module", "../file"], function(module, file) { /* ... */ });
優勢:服務器
缺點:curl
實現:異步
Common Module Definition 規範和 AMD 很類似,儘可能保持簡單,並與 CommonJS 和 Node.js 的 Modules 規範保持了很大的兼容性。模塊化
define(function(require, exports, module) { var $ = require('jquery'); var Spinning = require('./spinning'); exports.doSomething = ... module.exports = ... })
優勢:requirejs
缺點:
實現: