1.深拷贝:是指修改拷贝的新变量不会改变原有变量的值,新变量与原有变量指向不同的内存地址
//基本数据类型一般是深拷贝,修改b的值不会影响a
let a=1
let b=a
b = 2
console.log(a, b) //1 2
2.浅拷贝:是指修改拷贝的新变量会改变原有变量的值,新变量与原有变量指向相同的内存地址
let obj1={
name:'dan',
age:'16'
}
let obj2=obj1
obj2.name = 'min'
console.log(obj1,obj2) //obj1的name:'min'
3.object.assign()拷贝是指浅拷贝
let obj1={
name:'dan',
age:'18',
test:'test'
}
let obj2={
name:'ming',
age:"16",
like:'play'
}
let obj3=Object.assign(obj1,obj2) //obj3
console.log(obj3) //{name: "ming", age: "16", test: "test", like: "play"}
obj3.name='xiao' //obj3的改变使得obj1.name='xiao'
console.log(obj1) //{name: "xiao", age: "16", test: "test", like: "play"}
console.log(obj2) //{name: "ming", age: "16", like: "play"}