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

Как работать с контекстом у функции

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

Основные способы управления контекстом:

  1. Вызов как метода объекта
js
const obj = {
  name: 'John',
  greet() { console.log(`Hello, ${this.name}`) }
};
obj.greet(); // Hello, John
  1. Явное указание контекста
    • call() и apply() - вызывают функцию с указанным this
    • bind() - создаёт новую функцию с привязанным контекстом
js
function greet() { console.log(`Hello, ${this.name}`) }

const user = { name: 'Alice' };
greet.call(user); // Hello, Alice

const boundGreet = greet.bind(user);
boundGreet(); // Hello, Alice
  1. Стрелочные функции - не имеют своего this, берут его из внешней области
js
const obj = {
  name: 'Bob',
  greet: () => console.log(`Hello, ${this.name}`) // undefined (берет window)
};

Для классов контекст обычно привязывают в конструкторе или используют стрелочные методы.

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

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

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

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