0

我继承了一些带有 AMD 模块的代码,如下所示:

define('shared/modulename', {
    load: function(name, parentRequire, callback, config) {...}
})

这与此处记录的依赖关系数组的正常 AMD 语法不同。代码没有注释,也没有解释为什么这个模块需要改变语法。

这个 define() 的调用实际上做了什么?

查看为 load() 函数提供的参数,它们似乎是 AMD 内部的。

4

1 回答 1

1

这是定义 AMD 模块的简单形式之一。http://requirejs.org/docs/api.html#define

在 RequireJS 中,您可以以这种简单的格式定义名称-值对:

define({foo: 'yay'})

您也可以在定义中指定模块名称,这是您在组合模块时需要的。所以这使我们的例子:

define('aloha', {foo: 'yay'})

现在回到你的代码。意思很浅薄。它定义了一个名为shared/modulename. 该exports模块的 是一个对象,其中包含一个名为 的方法load

你可以像这样使用这个模块:

require('shared/modulename').load(name, parentRequire, callback, config)
于 2013-01-18T12:22:49.847 回答