window.jQuery
、window._
等)来进行临时处理的。要想使用jQuery的导出功能,您必须知道其魔术名称,希望没有人与之冲突,并确保jQuery脚本在您的脚本之前加载。无法声明性地指定您对jQuery的依赖关系,而jQuery也无法说“这就是我所导出的”,除了将它们塞到全局的window.jQuery
对象中。// math.js
define(function (require, exports, module) {
exports.add = function (a, b) { return a + b; };
});
每个模块都可以要求特定的其他模块,例如:
// perimeter.js
define(function (require, exports, module) {
var math = require("math");
exports.square = function (side) {
return math.add(math.add(side, side), math.add(side, side));
};
});
关于为什么AMD应该成为模块系统的首选,RequireJS的作者James Burke写了一篇博客文章详细说明他为什么认为AMD是最好的模块系统。