【问题标题】:AMD: what does 'dependencies' mean when its an object, not an array?AMD:当它是一个对象而不是数组时,“依赖关系”是什么意思?
【发布时间】:2013-01-18 12:04:43
【问题描述】:

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

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

这与array of dependencies as documented here 的正常 AMD 语法不同。代码没有注释,也没有解释为什么这个模块需要改变语法。

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

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

【问题讨论】:

    标签: javascript amd js-amd


    【解决方案1】:

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

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

    define({foo: 'yay'})
    

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

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

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

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

    require('shared/modulename').load(name, parentRequire, callback, config)
    

    【讨论】:

    • 谢谢@nil。我确实看到了“仅导出对象的语法”,但我仍然感到困惑 - 我知道“load()”正在运行(如果我添加日志语句),我在自己的代码中看不到任何实际运行负载的地方(),并且这些参数的值都是 requirejs 内部的。这让我觉得“负载”可能是某种内部需求。有什么想法吗?
    • 那会很奇怪...你能在 jsfiddle 上做一个详细的示例吗?
    猜你喜欢
    • 2018-04-10
    • 2016-03-17
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    相关资源
    最近更新 更多