Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: this, callback

Почему this внутри callback функции filter может быть undefined?

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

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

this внутри callback-функции filter может быть undefined, потому что callback вызывается как обычная функция, а не как метод объекта. В строгом режиме ("use strict") значение this в таких функциях равно undefined. Контекст не “передаётся автоматически” внутрь callback. Поэтому this там часто оказывается не тем, что ожидают.

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

Определение

Контекст выполнения (this) — это объект, к которому привязана функция в момент вызова.

Как вызывается callback в filter

Важно сначала понять, как именно вызывается callback.

  1. filter вызывает callback сам

  2. Callback не привязан к объекту

  3. Вызов выглядит концептуально так:

    callback(element, index, array);
    

Поведение this

  1. В обычном режиме:

    • this может указывать на глобальный объект

  2. В строгом режиме:

    • this === undefined

"use strict";

[1, 2, 3].filter(function (x) {
  console.log(this); // undefined
  return x > 1;
});

Почему это часто вызывает ошибки

  1. Ожидается this из внешнего объекта

  2. Но callback — это отдельная функция

  3. Контекст теряется

Связь с React

  1. В функциональных компонентах this не используется

  2. В классовых компонентах подобная ошибка встречается часто

  3. Поэтому важно явно управлять контекстом

Вывод

this внутри callback filter может быть undefined, потому что callback вызывается без привязки к объекту, особенно в строгом режиме.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

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

#this

#callback

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