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

Как вычисляется This

this определяется в момент вызова функции и зависит от контекста:

  1. Простой вызов: this будет window (в нестрогом режиме) или undefined (в строгом режиме)
javascript
function foo() { console.log(this); }
foo(); // window или undefined
  1. Метод объекта: this - объект перед точкой
javascript
const obj = { 
  bar() { console.log(this); } 
};
obj.bar(); // obj
  1. Явное указание: через call, apply, bind
javascript
function baz() { console.log(this); }
baz.call({x: 1}); // {x: 1}
  1. Конструктор: this - новый созданный объект
javascript
new Foo(); // this внутри Foo - новый экземпляр
  1. Стрелочные функции: берут this из окружающего контекста
javascript
const obj = {
  foo: () => console.log(this) // window (берет из внешней области)
};

Приоритет правил: new > явное указание > метод объекта > простой вызов.

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

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

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

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