una tablas tabla palabras espacios entre eliminar ejemplos datos cortar con caracteres cadena agregar javascript namespaces code-organization

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.