javascript - tablas - innerhtml
Dividir un espacio de nombres javascript en varios archivos (5)
Digamos que tengo un espacio de nombres como ese:
var myNamespace = {
foo: function() {
},
bar: function() {
}
};
¿Cuál es la mejor manera de dividir este código en archivos que definen foo
y bar
separado?
No estoy preocupado por el tiempo de carga. Lo volveré a concatenar en un archivo antes de la implementación.
Al comienzo de cada archivo:
if(myNameSpace === undefined) {
var myNameSpace = {};
}
Archivo 1:
myNamespace.foo = function()...
Archivo 2:
myNamespace.bar = function()...
Simple define en archivos separados como este:
Archivo 1:
var myNamspace = {};
Archivo 2:
myNamespace.foo = function()...
Archivo 3:
myNamespace.boo = function()...
Solo asegúrate de cargar los archivos en el orden correcto.
// File1:
// top level namespace here:
var myNamespace = myNamespace || {};
// File2:
myNamespace.foo = function() {
// some code here...
}
(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);
No tengo el representante para agregar un comentario a la respuesta de eavicahy.
En cada archivo, sigue este patrón ...
(function(nameSpace) {
nameSpace.foo = function() { ... };
})(window.nameSpace = window.nameSpace || {});
De esta forma, el orden de carga no es importante.