<script type="text/javascript"> ???????// 给每个对象定义一个深拷贝函数 ???????var deepCopy=function() { ???????????var t={}; ???????????for(var k in this){ ???????????????//对于当前对象中的每个属性,判断其是否为引用类型 ???????????????if(typeof this[k]===‘object‘){ ???????????????????t[k]=this[k].deepCopy();//如果是引用类型,执行深拷贝 ???????????????}else{ ???????????????????t[k]=this[k];//如果不是,直接拷贝其属性 ???????????????} ???????????} ???????????return t;//返回深拷贝后的对象 ???????} ???????????????var car={name:‘Benz‘}; ???????car.deepCopy=deepCopy;//给car对象添加deepCopy方法 ????????var p1={name:‘Tom‘,age:19,car:car}; ???????p1.deepCopy=deepCopy;//给p1对象添加deepCopy方法 ????????var p2=p1.deepCopy(); ???????p1.name=‘Json‘; ???????p1.age=20; ???????p1.car.name=‘Audi‘; ???????console.log(p1); ???????console.log(p2); ???</script>
JS---对象的深拷贝
原文地址:https://www.cnblogs.com/beast-king/p/9157330.html