js对象的深拷贝
1. JSON.parse(JSON.stringify(person))。
缺点:当值为undefined
、function
、symbol
会在转换过程中被忽略
2.手动写deepCone
1 function deepClone(obj) { 2 var result = Array.isArray(obj) ? [] : {}; 3 for (var key in obj) { 4 if (obj.hasOwnProperty(key)) { 5 if (typeof obj[key] === 'object' && obj[key]!==null) { 6 result[key] = deepClone(obj[key]); 7 } else { 8 var value = obj[key]; 9 if(typeof obj[key] === 'function') { 10 var fun = eval(value.toString()) 11 fun.prototype = value.prototype; 12 } 13 result[key] = value; 14 } 15 } 16 } 17 return result; 18 }