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