Что такое ключевое слово `this` и как определяется его значение?
Уровень: Middle
Ответ
`this` – специальное ключевое слово, которое указывает на контекст выполнения функции. Значение `this` определяется тем, как вызвана функция: если функция вызвана как метод объекта (obj.method()), `this` внутри будет ссылаться на этот объект `obj`. Если функция вызвана просто как f(), без контекста, то в нестрогом режиме `this` будет глобальным объектом (window), а в строгом – undefined. Также у стрелочных функций `this` особый – они не привязывают `this` сами, а берут его из внешней области.