深度克隆
如何引用已有的对象,建立一个新的对象,当然前提是已有对象的属性和要建立的对象的属性深度重合,这样就可以方便的用了,为了使两个对象的属性不相互干扰包括引用值,就简单学习了一下深度克隆。
这样,完成之后就可以放心的克隆已有对象,果然“懒惰是人类进步的阶梯”,哈哈哈。
小白一枚,如有错误,多谢指正。
<script>
var obj = {
name : "dexin",
age : 20,
car : ["BMW","Matalaze","Bujiadi"],
wife : {
naem : "xiaomeng",
age : 21,
son : {
name : "zhengde",
age : 10,
}
}
}
var obj1 = {};
function DeepClone(origin, target) {
var target = target || {},
toStr = Object.prototype.toString,
arrStr = "[object Array]";
for(var prop in origin){
if(origin.hasOwnProperty(prop)){
if(origin[prop] !== "null" && typeof(origin[prop]) == "object"){
if(toStr.call(origin[prop]) == arrStr){
target[prop] = [];
}else{
target[prop] = {};
}
DeepClone(origin[prop], target[prop]);
}else{
target[prop] = origin[prop];
}
}
}
return target;
}
DeepClone(obj, obj1);
</script>