Ключевое слово new в JavaScript
Многие начинающие разработчики путаются, когда впервые сталкиваются с оператором new
в JavaScript. Часто это происходит потому, что люди не воспринимают JavaScript как объектно-ориентированный язык программирования.
Основные вопросы, которые меня интересуют:
- Что именно представляет собой этот оператор?
- Какие задачи он помогает решать в разработке?
- В каких ситуациях его использование оправдано, а в каких лучше обойтись без него?
Буду благодарен за подробные объяснения с примерами кода!
Я тоже мучился с new когда учил js. Помогло разложить по шагам: создает пустой объект, цепляет прототип, вызывает функцию (this = новый объект), возвращает результат. Без new функция отработает как обычно, а this будет undefined в строгом режиме. Думал классы проще, но они всё равно используют конструкторы под капотом
При использовании new
в JavaScript создаётся новый объект, который наследует свойства из прототипа функции-конструктора. Затем вызывается сама функция-конструктор и возвращается объект. Если new
не использовать, this
будет указывать на глобальный объект, что может вызвать ошибки. Лично предпочитаю использовать классы — так код более структурирован и понятен.
Ключевое слово new создает новый объект и связывает его с конструкторской функцией. Если не использовать new, функция просто выполнится, и this будет указывать на объект window. В ES6 классах без new будет ошибка. Забывал его использовать и иногда очень долго искал ошибки.