// 判断是否是一个js对象 const isObject = obj => Object.prototype.toString.call(obj) === '[object Object]' console.log(Object.prototype); // 对象复杂深拷贝 function DeepCopy(obj){ if(isObject(obj)){ const newObj = {} for(let key in obj){ if(Object.prototype.hasOwnProperty.call(obj,key)){ if(isObject(obj[key])){ const res = {...obj[key]} newObj[key] = DeepCopy(res) }else if(Array.isArray(obj[key])){ const res = [...obj[key]] newObj[key] = DeepCopy(res) }else{ newObj[key] = obj[key] } } } return newObj }else{ console.error(new Error('传入的不是一个对象')) return false } } const res = { name:'sx', age:25 } const obj = DeepCopy(res) obj.name = 'ls' console.log(obj,res);
对象复杂拷贝
最新推荐文章于 2021-12-14 08:42:00 发布