From 72ffa2d6fdec58cc876ca2e69612fe81eb365730 Mon Sep 17 00:00:00 2001 From: kangert Date: Fri, 18 Jun 2021 11:11:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E6=B7=B1=E5=85=8B?= =?UTF-8?q?=E9=9A=86=E5=B7=A5=E5=85=B7=E6=96=B9=E4=BE=BF=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/deepClone.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/utils/deepClone.ts diff --git a/src/utils/deepClone.ts b/src/utils/deepClone.ts new file mode 100644 index 0000000..3e45034 --- /dev/null +++ b/src/utils/deepClone.ts @@ -0,0 +1,22 @@ +/** + * 对象深克隆 + * @param obj 源对象 + * @returns 克隆后的对象 + */ +export function deepClone(obj: any) { + let newObj: any + try { + //如果obj有push方法则 定义newObj为数组,否则为对象。 + newObj = obj.push ? [] : {} + } catch (error) { + newObj = {} + } + for (let attr in obj) { + if (typeof obj[attr] === 'object') { + newObj[attr] = deepClone(obj[attr]); + } else { + newObj[attr] = obj[attr]; + } + } + return newObj; +} \ No newline at end of file