1.浅拷贝
var obj1 = {
a : 10
}
function copy(obj){//浅拷贝
var newObj = {};
for(var attr in obj){
newObj[attr] = obj[attr];
}
return newObj;
}
var obj2 = copy(obj1);
obj2.a = 20;
alert(obj1.a);//10
2.深拷贝
var obj1 = {
a : {b : 10}
}
function deepCopy(obj){//深拷贝,我们使用递归的方法来实现
//终止条件,即什么时候 obj 不是对象就可以返回了
if(typeof obj != 'object'){
return obj;
}
var newObj = {};
for(var attr in obj){
newObj[attr] = deepCopy(obj[attr]);
}
return newObj;
}
var obj2 = deepCopy(obj1);
obj2.a.b = 20;
alert(obj1.a.b);//10