const _shallowClone = target => {
      if (typeof target === 'object' && target != null) {
        let specialObj = {
          'Date': date => new Date(date),
          'Set': setData => new Set(setData),
          'Map': mapData => new Map(mapData),
          'Function': func => func,
          'RegExp': reg => reg
        }
        if (specialObj[target.constructor.name]) return specialObj[target.constructor.name]()
        const cloneTarget = Array.isArray(target) ? [] : {}
        return Object.assign(cloneTarget, target)
      } else {
        return target
      }
    }