Встречается на собеседованиях • сегодня

Когда происходит потеря контекста

Потеря контекста this происходит, когда функция вызывается не в том контексте, в котором ожидалось. Чаще всего это случается:

  1. При передаче метода объекта как колбэка:
js
const user = {
  name: 'Alex',
  greet() {
    console.log(`Hello, ${this.name}`);
  }
};

setTimeout(user.greet, 1000); // Hello, undefined

text

2. При использовании функций внутри функций:
```js
const obj = {
  data: 'test',
  method() {
    function inner() {
      console.log(this.data); // undefined
    }
    inner();
  }
};
  1. При присвоении метода переменной:
js
const method = user.greet;
method(); // Hello, undefined

Решения:

  • Использовать стрелочные функции (сохраняют контекст)
  • Явно привязывать контекст через bind()
  • Передавать функцию-обёртку, сохраняющую контекст
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы