在同一名称空间中保留两个单独的javascript文件/代码段

时间:2012-07-18 16:37:02

标签: javascript

我有两个文件加载到浏览器中。

在初始调用中,一个作为嵌入式脚本直接加载。

另一个是通过创建脚本节点并写入.innerHTML属性动态加载的。

我必须这样做。

JavaScript的两个片段都封装在模块模式中。

我可以给他们这样的名字空间:

伪代码

var ns = Module Pattern 1

var ns = Moudule Pattern 2

如果没有,是否有另一种方法可以为它们提供相同的名称空间,这样当它们返回函数时我可以统一访问这些函数?

ns.function1();
ns.function2();

因为这是针对一个应用程序的,所以我更喜欢只有一个命名空间。但正如我所提到的,我必须加载两个片段。

由于

1 个答案:

答案 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)