深拷贝
浅拷贝:(shallowCopy)只是增加了一个指针指向已存在的内存地址,
深拷贝:(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,
var obj = {
a: 1,
arr: [1, 2],
nation: '中国',
birthplaces: ['北京', '上海', '广州']
};
var obj2 = deepCopy(obj,obj2);
function deepCopy(old, copy) {
var copy = copy || {};
for (var i in old) {
// console.log(i)
if (typeof old[i] === 'object') {
if (old[i].constructor === Array) {
//这是数组
copy[i] = [];
} else {
//这是对象
copy[i] = {};
}
deepCopy(old[i], copy[i]);
} else {
copy[i] = old[i];
}
}
return copy;
}
obj2.a=11;
console.log(obj)
console.log(obj2)
(只做记录,怕自己忘掉)