> Можно ли вызвать функцию-конструктор через оператор new в JavaScript? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: IT-One
Стек: JavaScript
> Пример ответа
Да, можно. В JavaScript любая функция может быть вызвана с оператором new, даже если она не предназначена для этого. При вызове через new происходит следующее:
- Создаётся новый пустой объект.
- Этот объект связывается с прототипом функции (свойство
prototype). - Внутри функции
thisуказывает на этот новый объект. - Если функция не возвращает явно объект, то
newвозвращает созданный объект.
Пример:
JAVASCRIPTfunction Person(name) {this.name = name;}const john = new Person('John');console.log(john.name); // "John"
Однако, если функция возвращает примитив (например, число или строку), new всё равно вернёт созданный объект. Если возвращается объект, то будет возвращён именно он, а не созданный автоматически.
Важно: стрелочные функции нельзя вызывать через new, так как у них нет собственного this и свойства prototype.
> Похожие задачи по frontend
Что означает запись с rest оператором в деструктуризации массива в JavaScript
Как работает оператор switch в JavaScript и что он возвращает
Влияет ли добавление async/await на порядок вывода в консоли?
Зачем на обертке модального окна навешивать id и проверять таргет клика для закрытия модалки
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью