Для обычного метода, вызванного как obj.method(), this обычно равен obj; значение определяется способом вызова, а не местом объявления функции.
Что такое контекст в JavaScript, ключевое слово this? Что будет в консоли, если вызвать метод объекта, внутри которого написано console.log(this)?
Для обычного метода, вызванного как obj.method(), this обычно равен obj; значение определяется способом вызова, а не местом объявления функции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для обычного метода, вызванного как obj.method(), this обычно равен obj; значение определяется способом вызова, а не местом объявления функции.
Если сохранить метод в переменную и вызвать отдельно, связь с obj потеряется: в strict mode this будет undefined, иначе возможна подстановка глобального объекта. bind фиксирует this, а стрелочная функция получает его из внешнего лексического окружения. Поэтому без кода нельзя обещать конкретный объект в консоли для любого вида метода.