js对象的深拷贝

1. JSON.parse(JSON.stringify(person))。

缺点:当值为undefinedfunctionsymbol 会在转换过程中被忽略

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     }