深拷贝浅拷贝
拷贝
拷贝的意思就是复制
基本类型是按照值来访问的
引用的类型都是按照引用来传递的
浅拷贝只是复制一层对象,
当对象的属性是引用类型时,实际就是复值的其引用,当引用指向的值范生发生变化的时候,源对象的属性值也会发生变化。互相影响。
Object.assign()
深拷贝:在拷贝的时候创建新的对象,并把源对象的所有的属性都深拷贝到新对象中,原属性要是也是对象的话,也会创建新的对象并拷贝到新的对象属性中,这样旧对象与新对象是相互独立的。互不影响
JSON.parse()+JSON.stringify()
var a={
b:1,
c:{
d:"88"
}}
var m=JSON.parse(JSON.stringify(a))
递归实现深拷贝
var m={};
if(type of=="obj"){
for(var k in obj){
if(obj.hasOwnProperty(k)){
if(type obj[k]=="object"){
m[k]=fn(obj[k])
}
else{
m[k]=obj[k]
}
}
}
}
return m;
}
fn(obj)