--- sidebar_position: 4 --- # Конструктор, оператор "new" ### Функция-конструктор Функции-конструкторы технически являются обычными функциями. Но есть два соглашения: 1. Имя функции-конструктора должно начинаться с большой буквы. 2. Функция-конструктор должна выполняться только с помощью оператора "new". Когда функция вызывается как new User(...), происходит следующее: 1. Создаётся новый пустой объект, и он присваивается `this`. 2. Выполняется тело функции. Обычно оно модифицирует `this`, добавляя туда новые свойства. 3. Возвращается значение `this`. Другими словами, new User(...) делает что-то вроде: ```js function User(name) { // this = {}; (неявно) // добавляет свойства к this this.name = name; this.isAdmin = false; // return this; (неявно) } ``` Итого: - Функции-конструкторы или просто конструкторы, являются обычными функциями, но существует общепринятое соглашение именовать их с заглавной буквы. - Функции-конструкторы следует вызывать только с помощью `new`. Такой вызов подразумевает создание пустого `this` в начале и возврат заполненного в конце. 🚀 **Источник: [https://learn.javascript.ru/constructor-new](https://learn.javascript.ru/constructor-new)**