JSFiddle - React, Tailwind, and code Playground

by akoptsov

JavaScript

function create(ctor, args) {
    var str = [],
        res;
    
    for (var i = 0, count = args.length; i < count; i++) {
        str.push('args[' + i + ']');
    }
    
    eval('res = new ctor(' + str.join(', ') + ');');
    
    return res;
}

function extend(base, extension) {
    extension.prototype = create(base, Array.prototype.slice.call(arguments));
    return extension;
}

var Ext = extend(
    function Foo() {this.foo='bar';}, 
    function Baz(a, b) { 
        this.bar = function () {return a+b;};
        this.baz = this.foo;
    }
);

var x = new Ext(10, 100);

console.log(x.foo);
console.log(x.bar);
console.log(x);