淺層拷貝 和 深層拷貝
淺複製 更深層次對象級別只拷貝引用
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