inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
  constructor.prototype.constructor = constructor;
  Object.defineProperty(constructor, 'super', {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
}
Inherit the prototype methods from one constructor into another
@param {function} constructor
@param {function} superConstructor
@param {object} [props]
@param {object} [descriptors]

@returns {void}