- 浅拷贝只是拷贝一层,更深层次对象级别的只是拷贝引用。
- 深拷贝拷贝多层,每一级别的数据都会拷贝。
浅拷贝
浅拷贝在拷贝对象的时候,只会拷贝引用。
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>