Hay otra forma de declarar su función en una variable como esta:
test = function() {
alert("test");
}
jsFiddle
Detalles
EDITAR (basado en los comentarios de @nnnnnn)
@nnnnnn:
¿Por qué decir test =
(sin var
) lo arreglaría?
Cuando define una función como esta:
var test = function(){};
La función se define localmente, pero cuando define su función sin var
:
test = function(){};
test
se define en el window
objeto que se encuentra en el ámbito de nivel superior.
¿Por qué funciona esto?
Como @zalun dice:
Si no especifica la configuración de ajuste, el valor predeterminado es "onLoad". Esto da como resultado que todo JavaScript se incluya en una función que se ejecuta después de que se haya cargado el resultado. Todas las variables son locales para esta función, por lo que no están disponibles en el ámbito global.
Pero si usa esta sintaxis:
test = function(){};
Tienes acceso a la función test
porque está definida globalmente
Referencias: