1 function shallowCopy(opj) { 2 let newOpj = {}; 3 for (let el in opj) { 4 newOpj[el] = opj[el] 5 } 6 return newOpj 7 } 8 9 shallowCopy({ 10 "name": "zhangsan", 11 "age": "18" 12 }); 13 14 function deepCopy(str, newOpj) { 15 //将str深拷贝到newOpj中 16 for (let key in str) { 17 if (typeof str[key] == "object") { 18 newOpj[key] = (str[key] instanceof Array) ? [] : {}; 19 deepCopy(str[key], newOpj[key]) 20 } else { 21 newOpj[key] = str[key] 22 } 23 } 24 return newOpj 25 } 26 27 // console.log(deepCopy({ 28 // name: "zhangsan", 29 // age: 18, 30 // friend: { 31 // "newname": "xiaohong", 32 // "newname2": "lisi" 33 // } 34 // }, {})) 35 36 console.log(deepCopy({ 37 name: "zhangsan", 38 age: 18, 39 friend: ["xiaohong","lisi"] 40 }, {}))