结果:

结果:

(1)当myobj1内容只有对象格式时:
//复杂对象:递归调用法:var myobj1 = {name:"yiyi",location:{city:"zr",province:"hn"}}var myobj2 = {}//封装一个函数function deepCopy(o2,o1){for(var i in o1){//复杂类型的表示方法:o1[i].toString()==="[object Object]"if(o1[i].toString()==="[object Object]"){o2[i]={}deepCopy(o2[i],o1[i])}else{o2[i]=o1[i]}}}deepCopy(myobj2,myobj1)console.log(myobj2,myobj1)
结果:
Object.prototype.toString.call(o1[i])==='[object Array]'
判断方式:Object.prototype.toString.call(o1[i])==="[object Object]"
(2)当myobj1内容既有复杂对象,又有数组格式时:
//复杂对象:递归调用法:var myobj1 = {name:"yiyi",location:{city:"zr",province:"hn"},horry:["sheying","paizhao","aimei"]}var myobj2 = {}//封装一个函数function deepCopy(o2,o1){for(var i in o1){//复杂类型的表示方法:o1[i].toString()==="[object Object]"if(Object.prototype.toString.call(o1[i])==="[object Object]"){o2[i]={}deepCopy(o2[i],o1[i])}else if(Object.prototype.toString.call(o1[i])==='[object Array]'){//数组类型判断方式:Object.prototype.toString.call(o1[i])==='[object Array]'o2[i]=[]//改为数组deepCopy(o2[i],o1[i])}else{o2[i]=o1[i]}}}deepCopy(myobj2,myobj1)console.log(myobj2,myobj1)
结果:

//复杂类型:JSON.parse(JSON.stringify())法:var myobj1 = {name:"yiyi",location:{city:"zr",province:"hn"},horry:["sheying","paizhao","aimei"],introduction:undefined}var myobj2 = JSON.parse(JSON.stringify(myobj1))console.log(myobj1,myobj2)
结果: