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

Определяется ли контекст в момент написания функции

Контекст функции (this) в JavaScript определяется не в момент её написания, а в момент вызова. Это ключевая особенность языка.

javascript
const obj = {
  name: 'Alice',
  greet: function() {
    console.log(`Hello, ${this.name}`);
  }
};

const greetFunc = obj.greet;
greetFunc(); // Hello, undefined (контекст потерян)
obj.greet(); // Hello, Alice (контекст - obj)

text

Исключение - стрелочные функции, которые захватывают контекст окружающей лексической области видимости на момент создания. 

```javascript
const obj = {
  name: 'Bob',
  greet: () => console.log(`Hi, ${this.name}`) // this не привязан к obj
};
obj.greet(); // Hi, undefined

Для управления контекстом можно использовать bind, call, apply.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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