> Как работает this внутри функции-конструктора и при обычном вызове функции в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Kaspersky, Rutube

Стек: JavaScript

> Пример ответа

Значение this в JavaScript определяется контекстом вызова функции, а не местом её объявления.

В функции-конструкторе (вызывается с new):

  • this ссылается на новый пустой объект, который создаётся автоматически.

  • Конструктор инициализирует этот объект (добавляет свойства/методы).

  • Функция неявно возвращает this, если не указано иное.

JAVASCRIPT
function User(name) {
this.name = name; // this - новый объект
}
const user = new User('Анна');
console.log(user.name); // 'Анна'

При обычном вызове функции (без new, без привязки):

  • В строгом режиме ('use strict') this равен undefined.

  • В нестрогом режиме this ссылается на глобальный объект (window в браузере, global в Node.js).

JAVASCRIPT
function showThis() {
'use strict';
console.log(this); // undefined
}
showThis();

Исключения: методы объектов, стрелочные функции, явная привязка (call, apply, bind) меняют поведение this. В стрелочных функциях this берётся из внешнего лексического окружения.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью