Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: arrow-function, this

Почему стрелочные функции не работают с this в некоторых контекстах?

Вопрос проверяет понимание отличий стрелочных функций от обычных.

Короткий ответ

Стрелочные функции не имеют своего 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);

Вывод:
Стрелочные функции удобны для колбэков, но не для методов.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#arrow-function

#this

Подпишись на React Developer в телеграм