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

В каком случае функция может изменить свой контекст

Функция может изменить контекст (this) в следующих случаях:

  1. Явное указание контекста:

    • call(), apply(), bind()
    javascript
    function greet() { console.log(this.name); }
    greet.call({ name: 'Alice' }); // Alice
  2. Вызов как метода объекта:
    Контекст — сам объект.

    javascript
    const obj = { name: 'Bob', greet };
    obj.greet(); // Bob
  1. Конструктор (new):
    Контекст — новый созданный объект.

    javascript
    new greet(); // this = новый экземпляр
  2. Стрелочные функции:
    Не имеют своего this, берут его из внешней области.

    javascript
    const arrow = () => console.log(this);
    arrow.call({}); // window (если не strict mode)
  3. Потеря контекста:
    При передаче метода как колбэка.

    javascript
    setTimeout(obj.greet, 100); // undefined (контекст потерян)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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