JSFiddle - React, Tailwind, and code Playground
JavaScript
"use strict";
function define(SuperClass, name, proto)
{
let ProtoFn = function(){};
ProtoFn.prototype = SuperClass.prototype;
let protoObj = new ProtoFn;
var NewClass = new Function(
"return function " + name + "(){ }"
)();
_.extend(protoObj, proto,
{
constructor: NewClass,
_class: NewClass,
_parent: SuperClass
});
NewClass.prototype = protoObj;
NewClass.className = name;
NewClass.define = define.bind(null, NewClass);
return NewClass;
}
let UserModel = define(new Object(), 'UserModel', { /* UserModel proto */ });
let john = new UserModel( /* blabla */ );
console.log(john);