在Javascript AMD中,为什么定义一个没有名称的模块是有用的?

3

对我来说,一个命名的模块是有意义的:

define('myModule', ['dep1', 'dep2'], function (dep1, dep2) {

    //Define the module value by returning a value.
    return function () {};
});

当我想使用这个模块时,可以使用require进行导入:

require('myModule', function(myModule){})

然而,我不明白像这样的匿名模块(来自requireJS examples):

define(['dep1', 'dep2'], function (dep1, dep2) {

    //Define the module value by returning a value.
    return function () {};
});

以上代码是否用于定义匿名模块?如果是,其他模块如何使用/导入/引用该模块?有人对此有想法吗?

1个回答

3
如果您在链接的页面上向下滚动一点,就会发现它说:
请注意,上述模块没有为自己声明名称。这就使得该模块非常易于移植。它允许开发人员将模块放置在不同的路径中以给它赋予不同的ID/名称。AMD加载器将根据其他脚本对其的引用方式为模块分配一个ID。
因此,模块实际上将获得一个名称,这取决于您如何加载包含它的文件。
我想这样做的想法是使用“匿名”模块(每个文件一个),然后使用构建工具将它们全部捆绑起来(在此过程中给它们命名)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接