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