Как работает this?
Ключевое слово this в JavaScript определяет контекст, в котором выполняется текущий код. Его значение динамически вычисляется в момент вызова самой функции, а не в момент ее объявления. Поведение this зависит от нескольких четких правил, определяющих способ вызова функции.
Если функция вызывается как метод объекта, то this указывает на сам этот объект. Это позволяет методам обращаться к свойствам своего владельца. В обычной функции, вызванной без какого-либо контекста, this ссылается на глобальный объект window в браузере или на undefined в строгом режиме, что часто становится источником ошибок у начинающих разработчиков.
Стрелочные функции ведут себя совершенно иначе. У них нет собственного this, и они наследуют его значение из внешнего лексического контекста на момент своего создания. Это делает их идеальными для использования внутри методов объектов или колбэков, где нужно надежно сохранить контекст внешней функции.
При создании объекта с помощью оператора new через функцию-конструктор или класс, this внутри этой функции ссылается на вновь созданный объект. Наконец, специальные методы позволяют управлять контекстом вручную. Анализируя место вызова функции, можно легко определить, на что именно указывает this в каждом конкретном случае.