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

Wil*_*Niu 10 javascript namespaces javascript-namespaces

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

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

uso*_*ban 6

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

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

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

module.exports.bar = Bar;

function Bar() {
 // code
}
Run Code Online (Sandbox Code Playgroud)

用法:

var foo = require('mymodule');

foo.bar();
Run Code Online (Sandbox Code Playgroud)

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

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


Dan*_*ini 0

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