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

Какой this у функции

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

  1. Простой вызов (не strict mode) - this будет глобальным объектом (window в браузере)
js
function foo() { console.log(this); }
foo(); // window
  1. Метод объекта - this ссылается на объект перед точкой
js
const obj = {
  method() { console.log(this); }
};
obj.method(); // obj
  1. Явное указание через call, apply, bind
js
function bar() { console.log(this); }
bar.call({ x: 1 }); // { x: 1 }
  1. Стрелочные функции - берут this из окружающего контекста
js
const obj = {
  arrow: () => console.log(this),
  regular() {
    const arrow = () => console.log(this);
    arrow(); // obj (наследует контекст regular)
  }
};
obj.arrow(); // window (контекст создания)
  1. Конструктор (new) - this ссылается на новый созданный объект
js
function Person() { console.log(this); }
new Person(); // новый объект Person
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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