JS中实现深拷贝的几种方法
作者:互联网
一,对象深拷贝的几种方法
1. 使用递归的方式实现深拷贝
1 function deepClone(obj){ 2 let objClone = Array.isArray(obj) ? [] : {}; 3 if (obj && typeof obj === 'object') { 4 for(let key in obj){ 5 if (obj[key] && typeof obj[key] === 'object'){ 6 objClone[key] = deepClone(obj[key]); 7 }else{ 8 objClone[key] = obj[key] 9 } 10 } 11 } 12 return objClone; 13 }
2. 通过JSON对象实现深拷贝
function deepClone2(obj) { let _obj = JSON.stringify(obj), return JSON.parse(_obj); }
注意: 无法实现对象中方法的深拷贝
3. 通过Object.assign()拷贝
注意: 当对象只有一级属性为深拷贝;
当对象中有多级属性时,二级属性后就是浅拷贝
二,数组深拷贝的几种方法
标签:obj,objClone,几种,JSON,let,key,拷贝,JS 来源: https://www.cnblogs.com/hyns/p/12405328.html