目录
let obj1 = {
name:'张三'
}
let obj2 = obj1//指针指向obj2
obj2.name = '李四'//浅拷贝修改互相影响
console.log(obj1);// {name: '李四'}
console.log(obj2 === obj1);//true
obj2 = {name:'张三'};
console.log(obj2 === obj1);//false 因为产生了新的对象,地址不相等
直接赋值引用数据类型只是赋值的指针,
浅拷贝:拷贝的是对象的指针,修改内容互相影响,因为指针相同,
深拷贝:整个对象拷贝到另一个内存中,修改内容互不影响,实现深拷贝有,JSON.pase(JSON.stringify())
解释:
一个对象赋值一个变量,变量将对象的值更改了,赋值的对象也会跟随变动,其实赋值的是指针,指针相同,共同指向堆内存中开辟的空间,所以obj2更改name,obj1的name也变动了
示例图
完!
Companionship is the deepest confession of love.
陪伴是最长情的告白。