- 浅拷贝只是拷贝一层,更深层次对象级别的只是拷贝引用。
- 深拷贝拷贝多层,每一级别的数据都会拷贝。
浅拷贝
浅拷贝在拷贝对象的时候,只会拷贝引用。
ES6提供的浅拷贝方法
深拷贝(原生JS)
<script> var obj = { id: 1, name: 'andy', age: { pink: 666 } }; var o = {}; function deepCopy(newObj,oldObj) { for(var k in oldObj) { // 首先获取每一个键对应的值,然后判断这个值是否为数组、对象 var temp = oldObj[k]; if(temp instanceof Array) { newObj[k] = []; deepCopy(newObj[k],temp); } else if(temp instanceof Object) { newObj[k] = {}; deepCopy(newObj[k],temp); } else { newObj[k] = temp; } } } deepCopy(o,obj); // console.log(o); o.age.pink = 777; console.log(obj); console.log(o); </script>