浅复制
更深层次对象级别只拷贝引用
var obj1 = {
a: 10,
b: 20,
info: {
c: 30
}
};
var target = {};
for(var key in obj1) {
//console.log(key);
//console.log(obj1[key]);
target[key] = obj1[key];
}
target.info.c = 100;
console.log(obj1.info.c); //100
console.log(target.info === obj1.info); // true
深拷贝
function deepCopy(target,source) {
for(var key in source) {
var item = source[key];
// 判断是否为数组 数组也是对象
if (item instanceof Array) {
target[key] = [];
deepCopy(target[key],item);
} else if (item instanceof Object) {
// 判断是否为对象
target[key] = {};
deepCopy(target[key],item);
} else {
// 简单数据类型
target[key] = item;
}
}
}
deepCopy(target,obj1);
console.log(target);
console.log(target.info === obj1.info);//fasle