浅拷贝:两个对象指向同一个内存地址,其中一个改变会影响另外一个
深拷贝:新对象指向新得内存地址,互不影响
function deepClone(obj) { if (typeof obj !== "object") return obj; const target = Array.isArray(obj) ? [] : {}; for (const key in obj) { // 判断数据中key是否重复,不重复着继续逻辑 if (!hasOwnProperty.call(obj, key)) continue; const v = obj[key]; target[key] = typeof v === "object" && v !== null ? deepClone(v) : v; } return target; }