JSFiddle - React, Tailwind, and code Playground

by Rishabh Sharma

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);