Обычный callback filter вызывается без объекта-владельца, поэтому его this не становится исходным объектом автоматически. Используйте стрелку, bind или thisArg.
Почему в callback функции filter теряется контекст this и как это исправить?
Обычный callback filter вызывается без объекта-владельца, поэтому его this не становится исходным объектом автоматически. Используйте стрелку, bind или thisArg.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Обычный callback filter вызывается без объекта-владельца, поэтому его this не становится исходным объектом автоматически. Используйте стрелку, bind или thisArg.
const group = {
min: 3,
select(values) { return values.filter(value => value >= this.min); }
};
Стрелка берёт this из select, поэтому сам select нужно вызвать как метод group. Альтернатива: values.filter(function (value) { return value >= this.min; }, this). Переданный thisArg не изменит лексический this стрелочной функции.