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
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