Встречается на собеседованиях • сегодня
Как возникает контекст у функции
Контекст функции (значение this) определяется в момент её вызова и зависит от способа вызова:
- Простой вызов -
thisбудетundefined(strict mode) или глобальный объект (не strict mode)
javascript
function foo() { console.log(this) }
foo() // window (или undefined в strict mode)- Метод объекта -
thisссылается на объект перед точкой
javascript
obj.method() // this = obj- Явное указание - через
call/apply/bind
javascript
func.call(context, ...args)- Конструктор (new) -
thisссылается на новый созданный объект
javascript
new Foo() // this = новый экземпляр Foo- Стрелочные функции - не имеют своего
this, берут его из окружающего контекста
Контекст можно потерять, например при передаче метода как колбэка:
javascript
setTimeout(obj.method) // контекст потеряется
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы