想知道是否可以在相同的功能范围内同时使用define和require。通常是要求或定义,我如何在两个相同的范围内?
define(["my/cart", "my/inventory"],
function(cart, inventory) {
//Define foo/title object in here.
}
);
require(["some/module", "a.js", "b.js"], function(someModule) {
//This function will be called when all the dependencies
//listed above are loaded. Note that this function could
//be called before the page is loaded.
//This callback is optional.
});
答案 0 :(得分:3)
define
函数用于使用AMD样式“定义”具有依赖关系的模块,而require
主要用于调用先前使用define
函数定义的模块。
建议的做法是每个文件只定义一个模块,但如果将模块名称作为该函数的第一个参数传递,则可以添加多个define
。
如果将名称显式传递给define
函数,则可以在define
调用中嵌套require
,但这没有意义,因为所有依赖项都传递给{{ 1}}可以直接传递给require
,这比内部需要的嵌套定义更清晰。
也许,在define
中嵌套require
可能更有用,也许如果你的模块具有仅在某些条件下需要的依赖项,那么添加公共依赖项是有意义的。 define
函数,以及条件语句中具有define
的更具体的函数。
在我看来,重要的概念是理解基本上require
用于定义AMD模块,define
用于调用它们。 (您可以使用非AMD文件作为依赖项,但这是另一回事。)