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

Keeping two separate javascript files / snippets in same namespace

本文关键字:独立 两个 javascript 文件 代码 命名空间 保留      更新时间:2023-11-06

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

其中一个直接作为嵌入脚本加载到初始调用中。

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

我必须这样做。

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

我能给他们相同的名称空间吗:

伪代码

var ns = Module Pattern 1
var ns = Moudule Pattern 2

如果没有,有没有其他方法给它们相同的名称空间,这样当它们返回函数时,我可以统一访问这些函数?

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

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

感谢

使用任何合理的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)