10

是否可以命名动态插入的 JavaScript 文件?

我知道我可以通过创建script标签来动态包含 JavaScript 文件并将其插入 DOM,但是这个包含的文件可以命名空间吗?所以,如果文件有一个名为 的函数bar,我想通过命名空间访问它,比如foo: ie foo.bar()

4

2 回答 2

6

是的,CommonJS Modules/1.1只指定了一种方法。

我只在服务器端将它与 Node.js 一起使用,但我相信还有其他库可以与 CommonJS 兼容的浏览器一起使用。请注意,服务器/浏览器有多个模块规范(尚未深入研究)。

模块就像任何其他 javascript 一样编写,唯一的补充是您导出要公开的内容:

module.exports.bar = Bar;

function Bar() {
 // code
}

以及用法:

var foo = require('mymodule');

foo.bar();

在后台实际做了什么,整个代码被包装到另一个函数中,导出是它的属性。

此外,Michael Bolin 在 JSConf 上谈论 'with' 关键字时也谈到了类似的问题

于 2011-08-14T09:45:29.047 回答
0

如果您的意思是在动态加载该文件时为该文件中定义的所有内容添加名称空间,而不修改文件本身,那么答案是否定的。

于 2011-08-14T09:41:26.143 回答