Стрелочная функция JavaScript
Сколько статей уже не прочитал, не могу понять, как работает this со стрелочными функциями.
Как я понял, в случае с обычной функцией this зависит от контекста выполнения, а стрелочная функция берет this, в котором создана. Тогда у меня вопрос:
Почему стрелочная функция консолит name из глобала? Она же создана в объекте person, значит, this = person! Объясните пожалуйста, как это работает. Я понимаю call, apply,bind, но тут застрял :(
P.S.

Ответы (1 шт):
Стрелочные функции особенные: у них нет своего «собственного» this. Если мы используем this внутри стрелочной функции, то его значение берётся из внешней «нормальной» функции.
Например, здесь arrow() использует значение this из внешнего метода user.sayHi():
Это является особенностью стрелочных функций. Они полезны, когда мы на самом деле не хотим иметь отдельное значение this, а хотим брать его из внешнего контекста.
https://learn.javascript.ru/object-methods
https://learn.javascript.ru/arrow-functions
Короче, в приведённом примере стрелочная функция не видит person, а выше person в данном случае только глобальные переменные
