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

В какой момент происходит присваивание контекста в function declaration и function expresion

Function declaration получает контекст (this) в момент вызова, в зависимости от способа вызова:

  • Как метод объекта: obj.func() - this = объект
  • Просто вызов: func() - this = window/undefined (strict mode)
  • С new: new Func() - this = новый экземпляр

Function expression ведет себя аналогично, так как это тоже функция. Разница только в объявлении:

javascript
// Function declaration
function foo() {
  console.log(this);
}

// Function expression
const bar = function() {
  console.log(this);
};

foo(); // window/undefined
bar(); // window/undefined

Arrow functions - исключение, они берут контекст из окружающей области.

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

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

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

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