С фигурными скобками у вас есть точка с запятой, вызванная для вас, а в скобках нет. Рассмотрим функцию takeWhile
, так как она ожидает частичную функцию, только {case xxx => ??? }
является корректным определением вместо круглых скобок вокруг выражения case.
Значение этого в обработчике
Часто желательно ссылаться на элемент, для которого был запущен обработчик события, например, при использовании универсального обработчика для набор похожих элементов.
Если присоединить функцию-обработчик к элементу с помощью
BLOCKQUOTE>addEventListener()
, значение этого внутри обработчика является ссылкой на элемент. Это то же самое, что и значение свойстваcurrentTarget
аргумента события, которое передается обработчику.
Это потому, что это метод, прикрепленный к объекту div
- подумайте о нем так:
const div = {
addEventListener: function(event, callback) {...}
};
В этом примере this
будет ссылаться на div
, как вы ожидаете.
Это то, что на самом деле происходит в вашем коде, только это определяется по-другому.