Задать вопрос
@senchkim
Junior Frontend

Объясните в чем тут проблема?

Всем доброго утра, подскажите в чем тут проблема:
https://jsfiddle.net/z302ktq7/
используя `evt.target` все нормально работает)
Но через `this` нет...
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Пользуйтесь консолью – это бесплатно, спортивно, современно!
console.log(this); // window
В вашем коде this не принимает значение кнопки, а наследует его из внешнего кода. В данном случае, глобального, поэтому this === window

Вероятно, вы ожидали, что this будет нажатой кнопкой. Так бы работало без стрелочной функции, если по-старинке передавали function(evt) {}
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED

а вот так снова нормально работает.

фишка в том, что у стрелочных функций this указывает не на кнопку, а в какое-то другое место.

потому что
Стрелочные функции не содержат собственный контекст this, а используют значение this окружающего контекста.
подробнее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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