window.addEventListener('click', function () { var i = 0; return function () { window.alert('You\'ve clicked it ' + (++i) + ' time(s).'); }; }());
Благодаря замыканиям JavaScript позволяет не выносить флаги за функцию-обработчик и тем самым не засорять области видимости уровнями выше.
Выполнить данный кусочек кода можно в консоли любого браузера. Для демонстрации щёлкайте по любому месту открытой страницы.
Кстати, я выкладываю этот и другие интересные кусочки кода на gostash.ru