JS 深浅拷贝
首先理解概念
浅拷贝: 只复制对象的基本类型, 对象类型, 仍属于原来的引用。
深拷贝: 不紧复制对象的基本类, 同时也复制原对象中的对象。就是说完全是新对象产生的。
首先看浅拷贝
//浅拷贝 var aAry = ['a','b']; var b = aAry; b[0]='changed'; console.log(aAry);//['changed','b'];
再看深拷贝
//方法一 //Array.prototype.slice() var a = ['a','b']; var b = a.slice(); b[0]=1; console.log(a);//['a','b'] //方法二 //concat() var a = ['a','b']; var b = a.concat([]); b[0]=1; console.log(a);//['a','b'] //方法三 //JSON.parse(JSON.Stringfly(); var a= ['a','b']; var b = JSON.parse(JSON.Stringflu(a)); b[0]=1; console.log(a);//['a','b']