对象的深拷贝,是指拷贝对象时拷贝的是对象的地址,新数据改变时,老数据也会被改变。
解决方式:利用for in将对象遍历,将值复制给新对象
例:
var obj1 = { name:"admin" } var obj2 = {}; for(var i in obj1){ obj2[i] = obj1[i]; } 当需拷贝的对象为多层对象嵌套时,如: var obj1 = { name:{ name2:{ name3:{ name4:"admin"; } } } } 仅靠for in已经不能实现对象的深拷贝了,此时可以将需拷贝的对象先转换为JSON,再将JSON数据转换为对象。 例: var obj2 = JSON.parse(JSON.stringify(obj1))