需要重新定义模块

时间:2014-10-24 03:40:30

标签: javascript requirejs

我想知道模块定义是如何工作的。举个例子更好。

如果一个接一个地定义了两个具有相同名称的模块,则第二个定义不会起作用:

define("somemodule", [], function () {return "foo";})
define("somemodule", [], function () {return "bar";})
require(["somemodule"], function (module) {console.log(module)})

它将返回:

> "foo"

但是如果我们在第一个定义之后调用模块,第二个模块将重新定义第一个模块:

define("somemodule", [], function () {return "foo";})
require(["somemodule"], function (module) {console.log(module)})
define("somemodule", [], function () {return "bar";})
require(["somemodule"], function (module) {console.log(module)})

返回:

> "foo"
> "bar"

为什么这样工作?事实上,我正在寻找防止模块重新定义的可能性。换句话说,我需要上面的代码来返回" foo"一直以来。

1 个答案:

答案 0 :(得分:3)

我使用的是requirejs 2.0.6。这个问题没有在requirejs 2.1.15中重现。解决!