Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
33
Создание собственного аналога оператора new
Условие задачи
Напишите функцию createInstance, которая получает в качестве первого параметра конструктор (например, Book) и произвольное количество остальных аргументов. Функция должна:
- Сформировать новый объект, чей прототип берётся из свойства
prototypeпереданного конструктора. - Вызвать конструктор с привязанным контекстом
thisк только что созданному объекту, передав ему все полученные аргументы. - Вернуть полученный объект, который должен быть экземпляром переданного конструктора.
function Book(name, author) {
this.name = name;
this.author = author;
}
function createInstance(Constructor, ...args) {
// Ваш код здесь
}
const myBook = createInstance(Book, 'Учебник JavaScript', 'Петр Сергеев');
console.log(myBook); // { name: 'Учебник JavaScript', author: 'Петр Сергеев' }
console.log(myBook instanceof Book); // true