Что это такое — «понимать замыкания?»
Иногда говорят «Вася молодец, понимает замыкания!». Что это такое — «понимать замыкания», какой смысл обычно вкладывают в эти слова?
«Понимать замыкания» в JavaScript означает понимать следующие вещи:
- Все переменные и параметры функций являются свойствами объекта переменных LexicalEnvironment. Каждый запуск функции создает новый такой объект. На верхнем уровне им является «глобальный объект», в браузере — window.
- При создании функция получает системное свойство [[Scope]], которое ссылается на LexicalEnvironment, в котором она была создана.
- При вызове функции, куда бы её ни передали в коде — она будет искать переменные сначала у себя, а затем во внешних LexicalEnvironment с места своего «рождения».
event.stopImmediatePropagation();
Если несколько слушателей прикреплены к одному и тому же элементу с одинаковым типом события, тогда они будут вызваны в порядке своего добавления. Если один из этих слушателей вызовет event.stopImmediatePropagation() тогда события оставшихся слушателей вызваны не будут.