<script>
var obj = {
name: "岳云鹏",
age: 30,
hobby: ["卖萌", "唱歌", "燕子"],
address: {
city: "北京",
name: "德云社",
},
};
var copyOjb = {};
//深拷贝:拷贝出来的目标对下个你和源对象,互不影响,修改其中的一个值,另外的对象不受影响
//实现深拷贝,取复杂类型和数组里面的值,放在新的变量中
function deepCopy(newObj, oldObj) {
for (var key in oldObj) {
//获取对象的每项属性或方法的值
var item = oldObj[key];
//如果是数组
if (item instanceof Array) {
//就遍历,逐个赋值
newObj[key] = [];
deepCopy(newObj[key], item);
} else if (item instanceof Object) {
//如果是复杂对象类型
newObj[key] = {};
deepCopy[(newObj[key], item)];
} else {
//如果是简单类型
newObj[key] = item;
}
}
}
deepCopy(copyOjb, obj);
obj.name = "f解放大卡是";
console.log(obj);
console.log(copyOjb);
</script>
递归实现深拷贝对象
最新推荐文章于 2024-04-24 17:38:10 发布