Инициализация экземпляра через функцию‑конструктор

Будет создан новый объект, чей прототип — 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) вернёт пустой массив. Отсутствие собственных полей не означает отсутствие унаследованных методов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее