var obj ={
id :1,
name :'蜘蛛侠',
msg :{
age:20}}var o ={};//方法一for(var i in obj){
o[i]= obj[i];}//方法2
Object.assign(o,ibj);//浅拷贝第一层之外的更深层只是拷贝的引用也就是地址还是同一个对象,修改更深层次的数据,拷贝前和拷贝过的都会改变
深拷贝
var obj ={
id :1,
name :'蜘蛛侠',
msg :{
age:20},
emotion:['happy','sad']}var o ={};//利用 递归functionCopy(newobj,oldobj){for(var i in oldobj){// 判断属性值的数据类型var item = oldobj[i];if(item instanceofArray){//数组属于Object 需要先判断是否属于数组
newobj[i]=[];Copy(newobj[i],item)}elseif(item instanceofObject){
newobj[i]={};Copy(newobj[i],item)}else{
newobj[i]= item;}}}Copy(o,obj);//深拷贝 是把数据完整的拷贝一份,是新生成另外一个对象,改其中一个对象的数据,另外一个不受影响