Как работает ключевое слово 'new' в JavaScript?

Ключевое слово new в JavaScript

Многие начинающие разработчики путаются, когда впервые сталкиваются с оператором new в JavaScript. Часто это происходит потому, что люди не воспринимают JavaScript как объектно-ориентированный язык программирования.

Основные вопросы, которые меня интересуют:

  • Что именно представляет собой этот оператор?
  • Какие задачи он помогает решать в разработке?
  • В каких ситуациях его использование оправдано, а в каких лучше обойтись без него?

Буду благодарен за подробные объяснения с примерами кода!

Я тоже мучился с new когда учил js. Помогло разложить по шагам: создает пустой объект, цепляет прототип, вызывает функцию (this = новый объект), возвращает результат. Без new функция отработает как обычно, а this будет undefined в строгом режиме. Думал классы проще, но они всё равно используют конструкторы под капотом

При использовании new в JavaScript создаётся новый объект, который наследует свойства из прототипа функции-конструктора. Затем вызывается сама функция-конструктор и возвращается объект. Если new не использовать, this будет указывать на глобальный объект, что может вызвать ошибки. Лично предпочитаю использовать классы — так код более структурирован и понятен.

Ключевое слово new создает новый объект и связывает его с конструкторской функцией. Если не использовать new, функция просто выполнится, и this будет указывать на объект window. В ES6 классах без new будет ошибка. Забывал его использовать и иногда очень долго искал ошибки.