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

Как изменяется this в зависимости от того как вызывается функция

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

  1. Обычный вызов: this ссылается на глобальный объект (window в браузере, global в Node.js), либо undefined в строгом режиме ('use strict').
javascript
function showThis() {
  console.log(this);
}
showThis(); // window или undefined (strict mode)
  1. Метод объекта: this ссылается на объект, которому принадлежит метод.
javascript
const obj = {
  name: 'Test',
  logThis() {
    console.log(this);
  }
};
obj.logThis(); // {name: 'Test', logThis: ƒ}
  1. Явное указание: call, apply, bind позволяют явно задать this.
javascript
function greet() {
  console.log(`Hello, ${this.name}`);
}
const user = { name: 'Alice' };
greet.call(user); // Hello, Alice
  1. Конструктор: this ссылается на новый созданный объект.
javascript
function Person(name) {
  this.name = name;
}
const person = new Person('Bob');
  1. Стрелочные функции: this берется из внешнего лексического контекста и не изменяется.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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