标签:png function alt mic else text 一个 java 数组
最近正在看一个腾讯课堂里面的学习视频中的js知识点,然后有一个深拷贝的题,于是就做了一下,使用arguments.callee实现深拷贝。
<script type="text/javascript"> var obj={ "name":"小二", "age":18, "sex":"man", "grade":{ "文综":{ "历史":100, "政治":80 }, "理综":{ "物理":87, "化学":68 } }, "hobby":[[1,1,5,4],[2,3,4,5],[8,7,9,8]] }; var obj1={}; //实现深拷贝 function copyObject(o1,o2){ var objc1=o1; var objc2=o2; for( prop in objc1){ if(typeof(objc1[prop])+""!=="object"){ //拷贝原始值 objc2[prop]=objc1[prop]; }else if(Object.prototype.toString.call(objc1[prop])+""==="[object Array]"){ //拷贝数组 objc2[prop]=[]; arguments.callee(objc1[prop],objc2[prop]) } else{ //拷贝对象 objc2[prop]={}; arguments.callee(objc1[prop],objc2[prop]) } } return objc2; } console.log(obj); //原对象 console.log(copyObject(obj,obj1)); //拷贝后对象 </script>
实现结果:
标签:png function alt mic else text 一个 java 数组
原文地址:https://www.cnblogs.com/xiaojianwei/p/12209147.html