Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: settimeout, setinterval

Как setInterval и setTimeout влияют на this?

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

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

В обычных функциях this внутри setInterval/setTimeout теряется (становится window/undefined в strict mode). Стрелочные функции сохраняют this из внешнего контекста.

Длинный ответ

Пример проблемы:

const obj = {
  value: 10,
  print() {
    setTimeout(function() {
      console.log(this.value); // undefined (this — глобальный объект)
    }, 1000);
  }
};
obj.print();

Решение 1: Стрелочная функция

const obj = {
  value: 10,
  print() {
    setTimeout(() => console.log(this.value), 1000); // 10
  }
};

Решение 2: Привязка контекста

setTimeout(function() { console.log(this.value); }.bind(obj), 1000);

Вывод:
Стрелочные функции или bind помогают сохранить this.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

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

#settimeout

#setinterval

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