#jquery #javascript
Может ли кто нибудь объяснить для чего нужны самовызывающиеся функции внутри jQuery(function() {})? Насколько я понимаю вообще они нужны для того, чтобы не засорять глобальный объект. Однако когда я пишу код таким образом: jQuery(function() { console.log(document === this) // true var testVar = 123; }) typeof testVar; //undefined typeof document.testVar; //undefined Моя переменная testVar нигде не появляется (имею ввиду что насколько я понимаю контекстом функции является объект document, но после задания преременной testVar и отрабатывания функции в объекте document не появляется новая переменная). Вопрос: имеется ли в самовызывающихся функциях внутри jQuery(function() {}) какой нибудь смысл?
Ответы
Ответ 1
jQuery(function() {}) или $(function(){}) функция сработает после загрузки DOM дерева. Обычно манипуляция с элементами DOM дерева делается после загрузки всей страницы. Этот код: typeof testVar; //undefined typeof document.testVar; //undefined сработает раньше этого кода: jQuery(function() { console.log(document === this) // true var testVar = 123; }) Переменная var testVar = 123;будет видна только у функции которой она била объявлена, если сделать так window.testVar = 123; она будет доступна в глобальной области видимости. Пример:Ответ 2
имеется ли в самовызывающихся функциях внутри jQuery(function() {}) какой нибудь смысл? Они ну никак не самовызывающиеся. Где ты скобки вызва нашёл? Эти функции передаются в jQuery, который их вызывает, когда загрузится документ.
Комментариев нет:
Отправить комментарий