I'm using simple class-mechanism:
function define(SuperClass, name, proto)
{
let ProtoFn = function(){};
ProtoFn.prototype = SuperClass.prototype;
let protoObj = new ProtoFn;
var NewClass = function()
{
this.construct.apply(this, arguments);
};
_.extend(protoObj, proto,
{
constructor: NewClass,
_class: NewClass,
_parent: SuperClass
});
NewClass.prototype = protoObj;
NewClass.className = name;
NewClass.define = define.bind(null, NewClass);
return NewClass;
}
Using:
let UserModel = Model.define('UserModel', { /* UserModel proto */ });
let john = new UserModel( /* blabla */ );
All right. But when I loging objects in Web Developer Tools I see "> NewClass {…}". Because variable in method "define" called "NewClass". I wanna see different class names in the console. How can I do that?
I've tried
- eval by new Function(name,
function ${name}{ /* code */
) - protoObj.constructor = {name: name}
- let o = {}; o[name] = function(){...}; let NewClass = o[name]
- Object.defineProperty(NewClass, 'name', { get...
- NewClass.name = name; // throw error
P.S. sorry for my english