JSFiddle - React, Tailwind, and code Playground
JavaScript
Function.prototype.callNew=function(args)
{
var a=[];
for(var i=0;i<args.length;i++)a.push("a["+i+"]");
var fn=new Function("var a=arguments;return new this("+a.join(",")+");");
return fn.apply(this,args);
}
function instanceExists(t,args)
{
if(t instanceof args.callee)
{
return true;
}else{
return false;
}
}
function requireInstance(t,args)
{
var fn=args.callee;
if(!instanceExists(t,args))
{
return fn.callNew(args);
}
}
function Waffle(one,two,three)
{
if(!instanceExists(this,arguments))
{
return requireInstance(this,arguments);
}
this.one=one;
this.two=two;
this.three=three;
}
Waffle.prototype.serve=function()
{
var out=[];
for(var j in this)
{
if(!this.hasOwnProperty(j))continue;
out.push(j+' :'+this[j]);
}
return '{'+out.join(",\n")+'}';
}
var waffle=Waffle(1,2,3);
alert(waffle.serve());