Функция jquery не определена - проблема с областью действия? - PullRequest
5 голосов
/ 30 декабря 2011

У меня, вероятно, простая проблема, с которой мне нужна помощь.

У меня есть два js-файла, которые я загрузил на страницу с помощью тега в html. Весь код в обоих этих файлах выполняется / загружается в пределах $(document).ready();

При определенном событии функция A, определенная в первом файле, пытается вызвать функцию B, определенную в другом файле. Однако, это терпит неудачу, я получаю ошибку, что функция B не определена.

Я заметил, что если я возьму определение функции B за пределы $(document).ready(), эта функция A сможет вызвать функцию B - она ​​находится в области видимости.

Почему?

1 Ответ

4 голосов
/ 30 декабря 2011

Это вопрос объема.Все, что определено внутри функции, доступно только внутри этой функции, если не сделано глобальным другим способом.Когда вы перемещаете функцию за пределы функции готовности, она становится глобальной, делая ее доступной глобально.

РЕДАКТИРОВАТЬ: когда я говорю «сделано глобальным другим способом», я имею в виду что-то вроде этого:

window.something = "something";

Это создаст глобальную переменную something, даже если эта строка кода существует в вашей функции готовности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...