protoExtend(sub) {
    const Super = this;
    const Constructor = hasOwn(sub, 'constructor') ? sub.constructor : function (...args) {
      Super.apply(this, args);
    };
    Object.assign(Constructor, Super);
    Constructor.prototype = Object.create(Super.prototype);
    Object.assign(Constructor.prototype, sub);

    return Constructor;
  }
/**
   * Provide simple "Class" extension mechanism
   */
Provide simple "Class" extension mechanism
Provide simple " Class " extension mechanism
protoExtend(sub) {
    const Super = this;
    const Constructor = hasOwn(sub, 'constructor') ? sub.constructor : function (...args) {
      Super.apply(this, args);
    };
    Object.assign(Constructor, Super);
    Constructor.prototype = Object.create(Super.prototype);
    Object.assign(Constructor.prototype, sub);
    return Constructor;
  }
protoExtend ( sub ) { const Super = this ; const Constructor = hasOwn ( sub , 'constructor' ) ? sub . constructor : function ( ... args ) { Super . apply ( this , args ) ; } ; Object . assign ( Constructor , Super ) ; Constructor . prototype = Object . create ( Super . prototype ) ; Object . assign ( Constructor . prototype , sub ) ; return Constructor ; }
Provide simple "Class" extension mechanism
Provide simple " Class " extension mechanism