JavaScript - замыкания и немедленные функции

В JavaScript всегда есть что-то интересное. Помимо обратных вызовов и анонимных функций вы можете нуждаться в закрытии.

Замыкания могут принимать форму выражения немедленного вызова функции (IIFE):

Или простая функция:

Интересной особенностью замыканий является то, что они несут вместе с собой область видимости во время своего вызова. В следующем примере safe_i сохраняется вместе с вызовами, поэтому его значение не равно 5 для всех итераций.

Мне, как бывшему разработчику C #, это показалось весьма интересным.

Багги

Фиксированный

Вы можете запустить код по ссылке ниже. Чтобы увидеть сообщения консоли, вам необходимо переключить консоль в браузере Инструменты разработчика.

Демо-код: Ссылка