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