麻烦老师再帮将下这段

麻烦老师再帮将下这段

1
// 深克隆<br>        function deepClone(o){<br>            // 要判断o是对象还是数组<br>            if(Array.isArray(o)){<br>                // 数组<br>                var result = [];<br>                for(var i = 0; i < o.length; i++){<br>                    result.push(deepClone(o[i]));<br>                };<br>            }else if(typeof o == 'object'){<br>                // 对象<br>                var result = {};<br>                for(var k in o){<br>                    result[k] = deepClone(o[k]);<br>                }<br>            }else{<br>                // 基本类型<br>                var result = o;<br>            }<br>            return result;<br>        }<br>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,理解的是对的,祝学习愉快~

好帮手慕言 2021-06-15 10:58:09

同学你好,对于每句代码写了一下注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 定义一个方法用来实现深克隆
        function deepClone(o) {
            // 先判断o是对象还是数组
            if (Array.isArray(o)) {
                // 如果是数组,那就声明一个空数组,利用for循环,把值放入到deepClone方法中再判断,把得到的结果推入到result中
                var result = [];
                for (var i = 0; i < o.length; i++) {
                    result.push(deepClone(o[i]));
                }
            } else if (typeof o == 'object') {
                // 如果是对象,那就声明一个空对象,利用for in,把值放入到deepClone方法中再判断,把得到的结果推入到result
                var result = {};
                for (var k in o) {
                    result[k] = deepClone(o[k]);
                }
            } else {
                // 如果是基本类型值,直接把值赋值给result
                var result = o;
            }
            // 最终返回result
            return result;
        }

以视频中的obj1为例,当对象obj1调用deepClone方法时,由于obj1是对象,所以会执行else if中的语句;在该语句中,会得到一个新的对象result,然后再把新对象result返回。


另外:视频中老师用了一节课为大家讲解深克隆,边讲解边写代码,肯定比老师只用文字描述更好理解,同学可以跟着视频的讲解再了解一下,如果哪句代码理解不了,可以提问,老师帮助解答。


祝学习愉快~

  • 提问者 慕UI4313976 #1

    老师,这个为例,递归最后会深入到不符合if和else if,最后一个基本单位基本之类型,可以这样理解吗?

    2021-06-15 21:11:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码