JSFiddle - React, Tailwind, and code Playground
JavaScript
function Foo(bar) {
this.bar = bar;
}
Foo.prototype.sayBar = function() {
console.log(this.bar);
}
function newNew(constructor, ...args) {
const obj = Object.create(constructor.prototype);
const returnValue = Foo.apply(obj, args);
if(Object.prototype.toString.call(returnValue) === '[object Object]') {
return returnValue;
}
return obj;
}
const fooTest1 = newNew(Foo, 'bar');
console.log(fooTest1);