是否可以为动态插入的 JavaScript 文件命名空间?
我知道我可以通过创建一个 script
标签并将它插入到 DOM 中来动态包含一个 JavaScript 文件,但是这个包含的文件可以命名空间吗?所以,如果文件有一个名为 bar
的函数,我想通过命名空间访问它,比如 foo
:即 foo.bar()
.
最佳答案
是的,CommonJS Modules/1.1仅指定一种方法。
我只在服务器端将它与 Node.js 一起使用,但我相信还有其他创建的库可以与兼容 CommonJS 的浏览器一起使用。请注意,服务器/浏览器有多个模块规范(尚未深入研究)。
模块就像任何其他 javascript 一样编写,唯一的增加是导出你想要公开的内容:
module.exports.bar = Bar;
function Bar() {
// code
}
以及用法:
var foo = require('mymodule');
foo.bar();
实际上在后台做了什么,整个代码被包装到另一个函数中,exports 是它的属性。
此外,Michael Bolin talked about similar problem in his talk about 'with' keyword at JSConf .
关于javascript - 命名空间动态加载的 javascript 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7056081/