diff --git a/src/utils/index.js b/src/utils/index.js index 22456861..613ae2a3 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -276,7 +276,14 @@ export function deepClone(source) { if (!source && typeof source !== 'object') { throw new Error('error arguments', 'shallowClone') } - const targetObj = source.constructor === Array ? Object.assign([], source) : Object.assign({}, source) + const targetObj = source.constructor === Array ? [] : {} + Object.keys(source).forEach(keys => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = deepClone(source[keys]) + } else { + targetObj[keys] = source[keys] + } + }) return targetObj }