对象的深浅拷贝
Object.assgin 会合并一个对象生成一个新对象。如果对象是普通类型改变之后新对象不会改变,如果是引用类型改变后新对象也会改变,所以Obeject.assgin实际上还是浅拷贝。
var obj={aa:1,bb:{item:'45'}}
var newObj=Object.assgin({},obj)
obj.aa=2;
obj.bb.item='kk';
console.log(obj)//=>{ aa: 2, bb: { item: 'kk' } }
console.log(newObj)//=>{ aa: 1, bb: { item: 'kk' } }
var obj={aa:1,bb:{item:'45'}}
var newObj=JSON.parse(JSON.stringify(obj));//深层拷贝
obj.aa=2;
obj.bb.item='kk'
console.log(obj);//=>{ aa: 2, bb: { item: 'kk' } }
console.log(newObj);//=>{ aa: 1, bb: { item: '45' } }