我有两个文件加载到浏览器中。
在初始调用中,一个作为嵌入式脚本直接加载。
另一个是通过创建脚本节点并写入.innerHTML属性动态加载的。
我必须这样做。
JavaScript的两个片段都封装在模块模式中。
我可以给他们这样的名字空间:
伪代码
var ns = Module Pattern 1
var ns = Moudule Pattern 2
如果没有,是否有另一种方法可以为它们提供相同的名称空间,这样当它们返回函数时我可以统一访问这些函数?
ns.function1();
ns.function2();
因为这是针对一个应用程序的,所以我更喜欢只有一个命名空间。但正如我所提到的,我必须加载两个片段。
由于
答案 0 :(得分:1)
使用任何合理的mixin实现,您可以尝试类似:
var ns = ns || {};
mixin(ns, Module Pattern 1);
var ns = ns || {};
mixin(ns, Module Pattern 2);
然后可以按任何顺序加载它们。
或者,稍微更改模块模式以接受命名空间对象作为参数,并为两者提供相同的模块:
var ns = ns || {};
(function(namespace) {
// ...
namespace.function1 = //...
}(ns));
// (again for module 2)