En una aplicación web basada en jQuery, tengo varias secuencias de comandos en las que se pueden incluir varios archivos y solo estoy usando uno de ellos a la vez (sé que no incluirlos a todos sería mejor, pero Soy el responsable del JS, así que esa no es mi decisión). Así que estoy envolviendo cada archivo en una función initModule()
que registra varios eventos y hace algo de inicialización etc.Funciones privadas en JavaScript
Ahora estoy ansioso por ver si hay alguna diferencia entre las dos formas siguientes de la definición de funciones no saturan el espacio de nombres global:
function initStuff(someArg) {
var someVar = 123;
var anotherVar = 456;
var somePrivateFunc = function() {
/* ... */
}
var anotherPrivateFunc = function() {
/* ... */
}
/* do some stuff here */
}
y
function initStuff(someArg) {
var someVar = 123;
var anotherVar = 456;
function somePrivateFunc() {
/* ... */
}
function anotherPrivateFunc() {
/* ... */
}
/* do some stuff here */
}
Tome un vistazo a [esta cuestión] (http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascript). – jwueller