Как реализовать оператор new?

Middle
168 просмотров
AFK Offer AI

function myNew(Constructor, ...args) { const obj = Object.create(Constructor.prototype); const result = Constructor.apply(obj, args); return result instanceof Object ? result : obj; }. Шаги: 1) создать объект с прототипом конструктора, 2) вызвать конструктор с this = новый объект, 3) если конструктор вернул объект — вернуть его, иначе — созданный объект. Object.create устанавливает прототипную связь. Если конструктор возвращает примитив — он игнорируется.

Следующий вопрос

Как верстать responsive email template?