Что происходит при вызове функции с ключевым словом `new`?
Уровень: Senior
Ответ
При вызове функции-конструктора через `new` происходит следующее: 1) Создаётся новый пустой объект. 2) Этот объект назначается контекстом `this` для вызова конструктора. 3) Объект прототипно связывается с `Constructor.prototype` (то есть его __proto__ = Constructor.prototype). 4) Выполняется код функции-конструктора с переданными аргументами. 5) Если конструктор явно не вернул объект, то возвращается тот самый новосозданный объект `this`. Если же в конструкторе прописан явный возврат объекта, то вернётся именно он (а возвращение примитива игнорируется). Таким образом, new позволяет функции-конструктору инициализировать объект и вернуть его в качестве результата.