Будет создан новый объект, чей прототип — Test.prototype. Поскольку конструктор пустой, собственных полей у obj нет; сам код ничего не выводит в консоль.
Инициализация экземпляра через функцию‑конструктор
Будет создан новый объект, чей прототип — Test.prototype. Поскольку конструктор пустой, собственных полей у obj нет; сам код ничего не выводит в консоль.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Какой результат будет получен при запуске следующего фрагмента кода?
function Test() {
}
const obj = new Test();
Ответ
Будет создан новый объект, чей прототип — Test.prototype. Поскольку конструктор пустой, собственных полей у obj нет; сам код ничего не выводит в консоль.
При new создаётся объект, он передаётся конструктору как this, затем возвращается, если конструктор не вернул другой объект. Здесь явного return нет. Проверки obj instanceof Test и Object.getPrototypeOf(obj) === Test.prototype дадут true, а Object.keys(obj) вернёт пустой массив. Отсутствие собственных полей не означает отсутствие унаследованных методов.