老师,我依葫芦画瓢,按照数组中深克隆的相关理解,重新写了个对象深克隆 ,不知道是否有问题,烦请指教!谢谢!
来源: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
同学你好,对象克隆是没问题的,很棒!祝学习愉快~
相似问题