什么是深拷贝什么是浅拷贝

43 阅读1分钟

浅拷贝: 拷贝对象的一层属性,如果对象里面还有对象,拷贝的是地址, 两者之间修改会有影响,适用于对象里面属性的值是简单数据类型的.

深拷贝: 拷贝对象的多层属性,如果对象里面还有对象,会继续拷贝,使用递归去实现.

浅拷贝:    var obj = {      class: 'UI',      age: 20,      love: 'eat'    }    function getObj(obj) {      var newObj = {}      for (var k in obj) {        newObj[k] = obj[k]      }      return newObj    }    var obj2 = getObj(obj)    console.log(obj2)

深拷贝:     var obj = {      class: '前端',      age: 26,      love: {      friuts : 'apple',      meat: 'beef'      }    }    function getObj(obj) {      var newObj = {}      for (var k in obj) {        /* if (typeof obj[k] == 'object') {          newObj[k] = getObj(obj[k])        } else {          newObj[k] = obj[k]        } */        newObj[k] = typeof obj[k] == 'object' ? getObj(obj[k]) : obj[k]      }      return newObj    }    var obj2 = getObj(obj)    console.log(obj2)