JSFiddle - React, Tailwind, and code Playground

by akoptsov

JavaScript

function create(ctor, args) {
    var Creator = function () {
        return ctor.apply(this, args);
    };
    Creator.prototype = ctor.prototype;
    Creator.name = ctor.name + '_';
    return new Creator();   
}

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

window.Ext = extend(
    function() {this.foo='bar';}, 
    function (a, b) { this.bar = function () {return a+b;}}
);

var x = new Ext(10, 100);

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