> Как работает this внутри функции-конструктора и при обычном вызове функции в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Kaspersky, Rutube
Стек: JavaScript
> Пример ответа
Значение this в JavaScript определяется контекстом вызова функции, а не местом её объявления.
В функции-конструкторе (вызывается с new):
-
thisссылается на новый пустой объект, который создаётся автоматически. -
Конструктор инициализирует этот объект (добавляет свойства/методы).
-
Функция неявно возвращает
this, если не указано иное.
JAVASCRIPTfunction User(name) {this.name = name; // this - новый объект}const user = new User('Анна');console.log(user.name); // 'Анна'
При обычном вызове функции (без new, без привязки):
-
В строгом режиме (
'use strict')thisравенundefined. -
В нестрогом режиме
thisссылается на глобальный объект (windowв браузере,globalв Node.js).
JAVASCRIPTfunction showThis() {'use strict';console.log(this); // undefined}showThis();
Исключения: методы объектов, стрелочные функции, явная привязка (call, apply, bind) меняют поведение this. В стрелочных функциях this берётся из внешнего лексического окружения.
> Похожие задачи по frontend
Как организовать общение между двумя вкладками одного приложения в браузере?
Что происходит при обращении к переменной var и let до объявления в JavaScript
Для чего нужен Webpack
Что такое fetch в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью