Есть другой способ объявить вашу функцию в переменной, например:
test = function() {
alert("test");
}
jsFiddle
подробности
ИЗМЕНИТЬ (на основе комментариев @nnnnnn)
@nnnnnn:
почему высказывание test =
(без var
) исправит это?
Когда вы определяете такую функцию:
var test = function(){};
Функция определяется локально, но когда вы определяете свою функцию без var
:
test = function(){};
test
определяется на window
объекте, который находится в области действия верхнего уровня.
почему это работает?
Как сказал @zalun:
Если вы не укажете настройку обтекания, по умолчанию будет установлено значение «onLoad». В результате весь JavaScript включается в функцию, запускаемую после загрузки результата. Все переменные являются локальными для этой функции, поэтому недоступны в глобальной области видимости.
Но если вы используете этот синтаксис:
test = function(){};
У вас есть доступ к функции, test
потому что она определена глобально
Ссылки :