/** * 深拷贝 * * @export * @template T * @param {T} target * @returns {(object | Array | T)} */ export function deep_copy (target: T): object | Array | T { let copyedObjs = []//此数组解决了循环引用和相同引用的问题,它存放已经递归到的目标对象 return _deep_copy(target, copyedObjs) } /** * 深拷贝递归方法 * * @template T * @param {T} target * @param {Array} copyedObjs * @returns {(object | Array | T)} */ function _deep_copy (target: T, copyedObjs: Array): object | Array | T { if ((typeof target !== 'object') || !target) { return target } for (let i= 0 ;i { // if (obj[key]) { return } obj[key] = _deep_copy(target[key], copyedObjs) }) return obj } export default { deep_copy }