Сообщество RSS DEV

Coding Challenge Practice - Вопрос 45

Функция `myNew` предназначена для воспроизведения поведения оператора `new` в JavaScript. Она принимает функцию-конструктор и любые последующие аргументы для передачи ей. Сначала она проверяет, является ли аргумент `constructor` функцией, и выбрасывает TypeError, если это не так. Затем она создает новый пустой объект с помощью `Object.create`, устанавливая его прототип равным прототипу `constructor`. Это гарантирует, что новый объект наследует свойства от прототипа конструктора. Затем функция `constructor` вызывается с помощью `apply`, при этом ее ключевое слово `this` привязано к вновь созданному объекту и предоставленным аргументам. Результат этого вызова конструктора сохраняется. Наконец, функция проверяет, вернула ли `constructor` непустой объект или функцию. Если да, то возвращается это возвращенное значение; в противном случае возвращается вновь созданный объект `obj`. Весь этот процесс имитирует то, как встроенный оператор `new` создает экземпляры объектов.
favicon
dev.to
Coding Challenge Practice - Question 45
Create attached notes ...