Вопрос проверяет понимание отличий стрелочных функций от обычных.
Стрелочные функции не имеют своего this — они берут его из внешнего контекста. Поэтому они не подходят для методов объекта или конструкторов.
Пример проблемы:
const obj = {
value: 10,
print: () => console.log(this.value) // undefined (this — глобальный объект)
};
obj.print();Решение:
Используйте обычные функции для методов:
const obj = {
value: 10,
print() { console.log(this.value); } // 10
};Где полезны стрелочные функции:
Колбэки (сохраняют контекст):
setTimeout(() => console.log(this), 1000);Вывод:
Стрелочные функции удобны для колбэков, но не для методов.