Для обычной функции this обычно определяется формой вызова, а для стрелки — внешним лексическим this в месте её создания.
В чём разница между тем, где функция объявлена, и тем, где она вызвана, в контексте значения this?
Для обычной функции this обычно определяется формой вызова, а для стрелки — внешним лексическим this в месте её создания.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для обычной функции this обычно определяется формой вызова, а для стрелки — внешним лексическим this в месте её создания.
Одна и та же функция при a.fn() и b.fn() может получить разных владельцев. Вызов через отдельную переменную эту связь не сохраняет. call/apply/bind позволяют задать this обычной функции, а new имеет отдельную семантику. У стрелки call и bind не переопределяют захваченный this.