let obj={a:1}
let obj2=obj
obj2.a=100
console.log(obj.a)//100
//对象的结构赋值 ...
let obj={a:1}
let obj2={...obj}
obj2.a=100
console.log(obj.a)//1
数据存放
1.基本类型的变量是存放在栈区的(栈区指内存里的栈内存)
2.引用类型的值是同时保存在栈内存和堆内存中的对象
对象引用
当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。前面讲引用类型的时候提到,保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响:
引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。