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

Какое поведение у this в зависимости от контекста использования в JavaScript

this в JavaScript зависит от контекста вызова функции:

  1. Глобальный контекст (вне функций) — this ссылается на window (в браузере) или global (в Node.js).

    javascript
    console.log(this === window); // true (в браузере)
  2. Функция (не стрелочная)this определяется при вызове:

    • Обычный вызов: thiswindow (нестрогий режим) или undefined (строгий режим).
      javascript
      function foo() { console.log(this); }
      foo(); // window (или undefined в strict mode)
    • Метод объекта: this — объект перед точкой.
      javascript
      const obj = { bar() { console.log(this); } };
      obj.bar(); // obj
  1. Стрелочная функцияthis берется из внешнего лексического контекста (не имеет своего).

    javascript
    const obj = {
      foo: () => console.log(this),
    };
    obj.foo(); // window (а не obj!)
  2. Явное указаниеcall, apply, bind задают this вручную.

    javascript
    function greet() { console.log(this.name); }
    greet.call({ name: 'Alex' }); // "Alex"
  3. Конструктор (new) — this ссылается на новый созданный объект.

    javascript
    function Person() { this.name = 'John'; }
    const p = new Person();
    console.log(p.name); // "John"
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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