code: function _extend (target, source, deep) {
    for (let key in source) {
      if (deep) {
        if (isPlainObject(source[key])) {
          !isPlainObject(target[key]) && (target[key] = {})
        } else if (Array.isArray(source[key])) {
          !Array.isArray(target[key]) && (target[key] = [])
        } else {
          source[key] !== undefined && (target[key] = source[key])
          continue
        }
        _extend(target[key], source[key], deep)
      } else if (source[key] !== undefined) {
        target[key] = source[key]
      }
    }
  }
docs: /* eslint-disable fecs-camelcase 
  Extend an object to another object.
  
  @inner
  @param {Object} target target
  @param {Object} source source
  @param {boolean} deep Extend deeply