JSFiddle - React, Tailwind, and code Playground
by amatiasq
HTML
<script src="http://amatiasq.com/fiddle-console.js"></script>
JavaScript
function fakeNew(Constructor, params) {
var instance = Object.create(Constructor.prototype);
var value = Constructor.apply(instance, params);
if (typeof value === 'object' && value !== null)
return value;
return instance;
}
function Constructor(param) {
return param;
}
[
[ 'Object', {} ],
[ 'Array', [] ],
[ 'String', 'testing' ],
[ 'Number', 5 ],
[ 'Boolean', true ],
[ 'Null', null ]
].forEach(function(item) {
var name = item[0];
var value = item[1];
var returned = fakeNew(Constructor, [value]);
var proto = Object.getPrototypeOf(returned);
console.log(name, 'returned', returned);
console.log(name, 'typeof', typeof returned);
console.log(name, 'constructor', getCtorName(returned));
console.log(name, 'isPrototyped', proto === Constructor.prototype);
console.log(name, 'instanceof', returned instanceof Constructor);
console.log('');
});
function getCtorName(object) {
return object.constructor.name;
}