深拷贝其实就是拷贝了数组或者对象的地址,浅拷贝就是没有拷贝数组或者对象的地址,浅拷贝只是将地址复制了一份然后发送给新的对象或者数组。
典型的浅拷贝就是直接赋值运算,将地址直接赋值但是这样不会导致其发生改变,
let obj = {
name: 'atguigu',
arr: ['乌鲁木齐', '库尔勒', '喀什', '和田'],
object: {
name: 'gangge',
age: 40
},
tho: function () {
console.log(this);
console.log('测试');
}
}
//设置一个容器封装后面的对象
let newObj = {}
//将属性设置给某个值,不能够直接复制因为直接复制就是浅拷贝,
newObj.name = obj.name
//将数组的每一个数字赋值
newObj.arr = [];
for (let i = 0; i < obj.arr.length; i++) {
newObj.arr[i] = obj.arr[i]
}
//将对象赋值
newObj.object = {}
for (let j in obj.object) {
newObj.object[j] = obj.object[j]
}
//设置方法
newObj.tho = obj.tho