code: function extend (protoProps, staticProps) {
    var Parent = this, key;
    var Child = (protoProps && protoProps.hasOwnProperty('constructor')) ?
      protoProps.constructor :
      typeof Parent === 'function' ?
      function () { Parent.apply(this, arguments); } :
      function () {};
  
    _extend(Child, Parent);
    subclass(Child, Parent);
    if (protoProps)  _extend(Child.prototype, protoProps);
    if (staticProps) _extend(Child, staticProps);
  
    return Child;
  }
docs: /*
  Backbone-like extend, based on CoffeeScript
  
  function Base() { ... };
  Base.extend = require('simpler-extend');
  
  Subclassing:
  
  var Circle = Base.extend();
  Circle.prototype.getArea = function() { ... };
  
  Or to simplify things:
  
  var Circle = Base.extend({
  constructor: function () { ... },
  ...
  });