将一个javascript命名空间分割成多个文件

比方说,我有这样的名字空间:

var myNamespace = { foo: function() { }, bar: function() { } }; 

将这段代码分离成分别定义foobar文件的最好方法是什么?

我不担心加载时间 – 我将在部署之前将其连接回一个文件。

在每个文件的开始处:

 if(myNameSpace === undefined) { var myNameSpace = {}; } 

文件1:

 myNamespace.foo = function()... 

文件2:

 myNamespace.bar = function()... 
 // File1: // top level namespace here: var myNamespace = myNamespace || {}; // File2: myNamespace.foo = function() { // some code here... } 

我没有代表给eavicahy的回答添加评论。

在每个文件中遵循这种模式…

 (function(nameSpace) { nameSpace.foo = function() { ... }; })(window.nameSpace = window.nameSpace || {}); 

这种装载顺序是不重要的。

简单定义在这样的单独文件中:

文件1:

 var myNamspace = {}; 

文件2:

 myNamespace.foo = function()... 

文件3:

 myNamespace.boo = function()... 

只要确保你以正确的顺序加载文件。

 (function (NS) { NS.Uber = function Uber() { this.super = new NS.Super(); // yes, it works! }; // }(NS = NS || {})); // ------------- other file ----------------- (function (NS) { NS.Super = function Super() { this.uber = new NS.Uber(); // yes, it will also work! }; // }(NS = NS || {})); // -------------- application code ------------ var uber = new NS.Uber(); console.log(uber.super); var super = new NS.Super(); console.log(super.uber);