js中 4种浅拷贝方式
首先深拷贝,浅拷贝,都是基于指 引用类型的变量 在 堆内存 中的占用空间情况。
一、在栈内存中保存字符串,数字,布尔以及指向堆内存的变量地址等固定的值。
让另个一变量d 等于 a,相当于在栈内存中开辟了一个新空间。
栈中a和d已经是两个互不相干的变量,修改不影响对方。
二、在堆内存中保存函数、数组、对象,这些是不固定的值。
令d等于a,只会在栈内存中存入一个相同的地址(指向a指向的堆内存地址)。
此时改变d的值,a的值也会改变。
浅拷贝仅仅只是拷贝了a在栈内存的堆地址,仍然和a共用一个堆内存。
三、浅拷贝的几种方式:
①、Object.assign(target, ...source)
Object.assign() 只复制属性值。

②、扩展运算符 ...
③、arr.slice()
④、arr.concat()
