docs: function clone(options) {
      var me = this,
          result = new me.constructor(extend({}, me, options));
  
      // correct the `options` object
      result.options = extend({}, me.options, options);
  
      // copy own custom properties
      forOwn(me, function(value, key) {
        if (!hasKey(result, key)) {
          result[key] = deepClone(value);
        }
      });
      return result;
    }