浅拷贝
浅拷贝,只能复制一些基本的数据,并不能实现复制复杂的数据;
var obj1 = {
name: '小花',
age: 18
};
var obj2 = {};
function kaobei(a, b) {
for (var key in a) {
b[key] = a[key];
}
}
baobei(obj1, obj2);
console.log(obj2);
深拷贝
深拷贝能够实现完全拷贝,不管这个对象里面存在数据还是对象都能够进行拷贝,利用了递归思想
var obj1 = {
name: '小白',
eat: {
name: '小花',
age: 18
},
arr: [
1, 2, 3
]
};
var obj2 = {};
function kaobei(a, b) {
for (var key in a) {
var item = a[key];
if (item instanceof Array) {
b[key] = [];
kelong(item, b[key]);
} else if (item instanceof Object) {
b[key] = {};
kelong(item, b[key]);
} else {
b[key] = item;
}
}
}
kaobei(obj1, obj2);
console.log(obj2);