深克隆:如果属性是基本类型,克隆的就是基本类型的值;如果属性是内存地址(引用类型),比如数组或者类对象,深克隆会新建一个对象空间,然后克隆里面的内容,所以它们指向了不同的内存空间。改变其中一个,不会对另外一个也产生影响。
浅克隆:如果属性是基本类型,克隆的就是基本类型的值;如果属性是内存地址(引用类型),克隆的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。
直接赋值
直接赋值的话不管是复杂数据类型以及简单数据类型,操作数据时都会相互影响!
代码演示
let obj = {
uname: '张三',
age: 18,
hobby: ['篮球', '跑步']
}
let copyObj = {
}
// 直接赋值
copyObj = obj
console.log(copyObj)
打印copyObj如下
修改copyObj里面的元素并打印
let obj = {
uname: '张三',
age: 18,
hobby: ['篮球', '跑步']
}
let copyObj = {
}
// 直接赋值
copyObj = obj
console