> Можно ли вызвать функцию-конструктор через оператор new в JavaScript? (JavaScript)

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

Компании: IT-One

Стек: JavaScript

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

Да, можно. В JavaScript любая функция может быть вызвана с оператором new, даже если она не предназначена для этого. При вызове через new происходит следующее:

  1. Создаётся новый пустой объект.
  2. Этот объект связывается с прототипом функции (свойство prototype).
  3. Внутри функции this указывает на этот новый объект.
  4. Если функция не возвращает явно объект, то new возвращает созданный объект.

Пример:

JAVASCRIPT
function Person(name) {
this.name = name;
}
const john = new Person('John');
console.log(john.name); // "John"

Однако, если функция возвращает примитив (например, число или строку), new всё равно вернёт созданный объект. Если возвращается объект, то будет возвращён именно он, а не созданный автоматически.

Важно: стрелочные функции нельзя вызывать через new, так как у них нет собственного this и свойства prototype.

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

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