Estoy intentando organizar mi JavaScript mejor. Mi objetivo es tener una arquitectura modular que pueda dividir en archivos separados (sitename.js, sitename.utils.js, etc.).Cuál es la diferencia entre estos dos patrones de JavaScript
Me gustaría saber cuáles son las ventajas y desventajas de estos dos patrones y cuál es más adecuado para dividir en módulos que viven en archivos separados.
patrón # 1 (patrón módulo)
var MODULE = (function() {
//private methods
return {
common: {
init: function() {
console.log("common.init");
}
},
users: {
init: function() {
console.log("users.init");
},
show: function() {
console.log("users.show");
}
}
}
})();
patrón # 2 (singleton)
var MODULE = {
common: {
init: function() {
console.log("common.init");
}
},
users: {
init: function() {
console.log("users.init");
},
show: function() {
console.log("users.show");
}
}
};
Lo primero que se le viene a la mente es que el Patrón 1 permite el código de inicialización que puede incluir declaraciones de funciones o variables que salgan inmediatamente del alcance, por lo que no contaminan el alcance envolvente. – Pablo