Почему значение `this` в обратном вызове прослушивателя событий dom не является окном?

С фигурными скобками у вас есть точка с запятой, вызванная для вас, а в скобках нет. Рассмотрим функцию takeWhile, так как она ожидает частичную функцию, только {case xxx => ??? } является корректным определением вместо круглых скобок вокруг выражения case.

0
задан Jack Bashford 7 March 2019 в 03:47
поделиться

2 ответа

Значение этого в обработчике

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

Если присоединить функцию-обработчик к элементу с помощью addEventListener(), значение этого внутри обработчика является ссылкой на элемент. Это то же самое, что и значение свойства currentTarget аргумента события, которое передается обработчику.

0
ответ дан Ele 7 March 2019 в 03:47
поделиться

Это потому, что это метод, прикрепленный к объекту div - подумайте о нем так:

const div = {
    addEventListener: function(event, callback) {...}
};

В этом примере this будет ссылаться на div, как вы ожидаете.

Это то, что на самом деле происходит в вашем коде, только это определяется по-другому.

0
ответ дан Jack Bashford 7 March 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: