Встречается на собеседованиях • сегодня
Как поменять контекст в стрелочной функции
Стрелочные функции не имеют собственного контекста (this), они наследуют его из окружающей лексической области. Это их ключевое отличие от обычных функций.
Если нужно изменить контекст, можно:
- Использовать обычную функцию
- Явно привязать контекст через
.bind() - Использовать замыкание для сохранения нужного контекста
Пример:
javascript
const obj = {
name: 'Test',
regularFunc: function() {
console.log(this.name); // Работает
},
arrowFunc: () => {
console.log(this.name); // Не работает (this берется из внешней области)
}
};Для изменения контекста стрелочной функции нужно изменить контекст окружающей области или использовать обертку:
javascript
function wrapper() {
const arrow = () => console.log(this.name);
arrow();
}
wrapper.call({name: 'New Context'}); // 'New Context'
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы