Middle
74
questionbank

Как работает оператор new в JavaScript?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Оператор new используется для создания экземпляра объекта на основе функции-конструктора.

При вызове new ФункцияКонструктор() происходят следующие шаги:

  1. Создается новый пустой объект в памяти.
  2. Прототип этого нового объекта устанавливается равным свойству prototype ФункцииКонструктора.
  3. Конструктор ФункцияКонструктор вызывается с контекстом выполнения (this), установленным на новый объект. Аргументы, переданные new, передаются в конструктор.
  4. Если конструктор возвращает не-примитивное значение (объект, массив, функция и т.д.), то это значение становится результатом вызова new.
  5. Если конструктор явно не возвращает значение или возвращает примитивное значение (число, строка, null, undefined, boolean, symbol, bigint), то результатом вызова new становится новый объект, созданный на шаге 1.

Пример:

javascript

Аналогичное поведение можно эмулировать без new с помощью Object.create и call или apply:

javascript