@cloudz

В чем разница записи замыкания js?

(function () {
})();


(function () {
}());


вроде исполняется одинаково
  • Вопрос задан
  • 143 просмотра
Решения вопроса 2
rockon404
@rockon404
Frontend Developer
Это самовызывающаяся функция. Разницы нет. А замыканиями в JavaScript технически являются абсолютно все функции.
Ответ написан
Комментировать
@diadiafiodor
какой-то человек с улицы
Если вызываем (function(){})() , то создаем замыкание, переменные которого доступны будут только в нем
и больше нигде, если вызывать (function(){}()), то можно запузырить туда еще других функций
(function(){},function(){},function(){}, ...) для которых внутренние переменные, принадлежащие
замыканию будут тоже доступны.


Например вы хотите, чтобы счетчик кликов работал только от кликов и нигде в коде не было доступа к нему,
тогда вешаете функцию на обработчик события следующим образом:
document.addEventListener("click" ,(function(){var numClicks = 0; return function(){alert(++numClicks)};})(), false)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Это IIF https://en.wikipedia.org/wiki/Immediately-invoked_...
Замыкание это любая функция со всеми доступными ей переменными
https://en.wikipedia.org/wiki/Closure_(computer_pr...
https://learn.javascript.ru/closures
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы