命名空间动态加载的javascript文件的内容

时间:2011-08-14 09:35:11

标签: javascript namespaces javascript-namespaces

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

我知道我可以通过创建script标记动态地包含JavaScript文件并将其插入到DOM中,但这个包含文件是否可以命名空间?因此,如果文件有一个名为bar的函数,我希望通过命名空间访问它,比如foo:即foo.bar()

2 个答案:

答案 0 :(得分:6)

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

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

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

module.exports.bar = Bar;

function Bar() {
 // code
}

用法:

var foo = require('mymodule');

foo.bar();

在后台实际完成的是,整个代码被包装到另一个函数中,导出就是它的属性。

另外,Michael Bolin talked about similar problem in his talk about 'with' keyword at JSConf

答案 1 :(得分:0)

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