require 和 requirejs 是一样的。
require === requirejs // true
require 是一种加载已定义模块的方法。例如加载我可以做的logger 模块:
require(["logger"], function(logger){
logger.bla("S");
});
这里我调用require,指定一个已定义的模块logger,并通过调用它的bla 方法来使用它。
define 是一种定义模块的方式。例如,要定义一个 logger 模块,我可以这样做:
// logger.js
define(function(){
return {
bla: function(x){
alert(x);
}
}
});
在这里我调用了define 并定义了logger 模块。在这个模块中,我返回了我想要公开的bla 函数。
有时define 看起来与exports 非常相似,因为define 也可以依赖和使用其他模块,就像require 可以使用其他模块一样。让我给你看同样的logger 模块,这次使用一个模块
// logger.js
define(["popup"], function(popup){
return {
bla: function(x){
popup.show(x);
}
}
});
这里的记录器模块 I defined,也有一个名为 popup 的依赖项,因此它看起来像 require。