В отличие от многих других языков с фигурными скобками, JavaScript не включает переменные области видимости в ближайший закрывающий блок. Вместо этого var
операторам присваиваются переменные области видимости. Общей ошибкой среди программистов JavaScript является объявление var
s внутри цикла или условное с предположением, что они выйдут из области действия в конце блока.
Создание анонимной функции, а затем ее немедленное выполнение (путем размещения ()
после нее) вызывает создание новой области, гарантируя, что переменные, объявленные внутри wil, не будут мешать другому JavaScript, который может быть висит вокруг. Обертка всего объекта в другом наборе parens делает его выражением, которое может разрешить некоторые неоднозначности синтаксиса для максимальной совместимости с браузером.
Подобный недавний вопрос: http://stackoverflow.com/questions/3082149/javascript-why-use-an-anonymous-function-here –