浅拷贝
let obj1 = {name: 'zs',age: 20,height: 180}let obj2 = {}// 循环遍历 obj1,循环一次,将一个属性拷贝到 obj2 里面for (let key in obj1) {// key 表示对象的属性// console.log(key) // name age height// console.log(obj1[key]) // zs 20 180obj2[key] = obj1[key]}obj2.height = 200console.log(obj1)console.log(obj2)
深拷贝
let obj1 = {name: 'zs',age: 20,info: [180, 80],dog: {color: 'black',age: 3}}let obj2 = {}// 规律:深拷贝 相当于是 很多个浅拷贝// 我写一个函数,功能是实现浅拷贝,当我们需要浅拷贝的时候,就调用这个函数function kaobei(obj1, obj2) {for (let key in obj1) {if (obj1[key] instanceof Array) {obj2[key] = []kaobei(obj1[key], obj2[key])} else if (obj1[key] instanceof Object) {obj2[key] = {}kaobei(obj1[key], obj2[key])} else {obj2[key] = obj1[key]}}}kaobei(obj1, obj2)obj1.dog.color = 'red'console.log(obj1)console.log(obj2)
