Особенность использования ключевого слова this в JavaScript заключается в том, что объект, на который оно ссылается, может меняться в зависимости от контекста вызова. 2
Некоторые ситуации, в которых значение this отличается:
- Глобальный контекст. 1 В этом случае this относится к глобальному объекту, который в браузерах — это window, а в Node.js — global. 1
- Контекст функции. 1 Внутри функции this относится к объекту, методом которого является функция. 1
- Контекст конструктора. 1 Когда функция используется в качестве конструктора с ключевым словом new, this ссылается на вновь созданный объект. 1
- Обработчики событий. 1 В этом случае this обычно относится к элементу, который вызвал событие. 1
- Стрелочные функции. 34 У них нет своего «собственного» this, и если ссылаться на это внутри такой функции, то значение берётся из внешней «нормальной» функции. 4
Использование this делает код более гибким, позволяет методу работать с данными конкретного экземпляра объекта и делает код более универсальным. 2