Что произойдёт, если вместо колбэка передать clearCache как прямую ссылку на метод cache.clear (без замыкания)? Почему это не будет работать и как это исправить (например, через bind)?

Прямая передача cache.clear теряет привязку this; для Map это приведёт к TypeError при вызове с неподходящим получателем.

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

Что ответить на собеседовании

Прямая передача cache.clear теряет привязку this; для Map это приведёт к TypeError при вызове с неподходящим получателем.

Подробный разбор

Ответ с пояснениями

Условие

Что произойдёт, если вместо колбэка передать clearCache как прямую ссылку на метод cache.clear (без замыкания)? Почему это не будет работать и как это исправить (например, через bind)?

Ответ

Прямая передача cache.clear теряет привязку this; для Map это приведёт к TypeError при вызове с неподходящим получателем.

Используйте () => cache.clear() или cache.clear.bind(cache). Первый вариант вызывает метод через объект, второй заранее фиксирует получателя. Передача ссылки на метод сама по себе не сохраняет объект, из которого эту ссылку получили.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее