老师,我依葫芦画瓢,按照数组中深克隆的相关理解,重新写了个对象深克隆 ,不知道是否有问题,烦请指教!谢谢!
来源:2-10 对象的深浅克隆(2)
weixin_慕码人6478092
2022-02-17 17:41:19
相关代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>deepClone</title> </head> <body> <script> var obj1 = { a: 1, b: 2, c: [3,4], d:{ e:11, g:[5,6] } }; function deepClone(obj) { var obj2 = {}; for (var k in obj) { if (Array.isArray(obj[k])) { var result = []; for(var i = 0; i < obj[k].length; i++){ result.push(obj[k][i]); }; obj2[k] = result; } else if (typeof (obj[k]) == 'object') { obj2[k] = deepClone(obj[k]); } else { obj2[k] = obj[k]; } } return obj2; } var obj3 = deepClone(obj1); obj3.c.push(5); obj3.d.f = 111; obj3.d.g.push(999); console.log(obj1); console.log(obj3); console.log(deepClone(obj1)); </script> </body> </html>
2回答
好帮手慕星星
2022-02-17
同学你好,首先看代码逻辑,然后用代码测试,这是正常的流程。
代码了逻辑没问题,老师在源代码的基础上又嵌套了一层对象
测试效果没问题即可。
好帮手慕星星
2022-02-17
同学你好,对象克隆是没问题的,很棒!祝学习愉快~
相似问题