Вопрос проверяет понимание контекста выполнения функций и поведения this в JavaScript.
this внутри callback-функции filter может быть undefined, потому что callback вызывается как обычная функция, а не как метод объекта. В строгом режиме ("use strict") значение this в таких функциях равно undefined. Контекст не “передаётся автоматически” внутрь callback. Поэтому this там часто оказывается не тем, что ожидают.
Контекст выполнения (this) — это объект, к которому привязана функция в момент вызова.
Важно сначала понять, как именно вызывается callback.
filter вызывает callback сам
Callback не привязан к объекту
Вызов выглядит концептуально так:
callback(element, index, array);
В обычном режиме:
this может указывать на глобальный объект
В строгом режиме:
this === undefined
"use strict";
[1, 2, 3].filter(function (x) {
console.log(this); // undefined
return x > 1;
});
Ожидается this из внешнего объекта
Но callback — это отдельная функция
Контекст теряется
В функциональных компонентах this не используется
В классовых компонентах подобная ошибка встречается часто
Поэтому важно явно управлять контекстом
this внутри callback filter может быть undefined, потому что callback вызывается без привязки к объекту, особенно в строгом режиме.