码迷,mamicode.com
首页 > 其他好文 > 详细

如何实现对象的深拷贝

时间:2019-11-09 20:07:02      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:对象   var   复制   str   min   name   ring   font   嵌套   

对象的深拷贝,是指拷贝对象时拷贝的是对象的地址,新数据改变时,老数据也会被改变。

解决方式:利用for in将对象遍历,将值复制给新对象

例:

 var obj1 = {
        name:"admin"
    }
 
    var obj2 = {};
    for(var i in obj1){
        obj2[i] = obj1[i];
    }
当需拷贝的对象为多层对象嵌套时,如:
var obj1 = {
        name:{
            name2:{
                name3:{
                    name4:"admin";
                }
            }
        }
    }
仅靠for in已经不能实现对象的深拷贝了,此时可以将需拷贝的对象先转换为JSON,再将JSON数据转换为对象。
例:
 var obj2 = JSON.parse(JSON.stringify(obj1))
 
 

如何实现对象的深拷贝

标签:对象   var   复制   str   min   name   ring   font   嵌套   

原文地址:https://www.cnblogs.com/cxyuan/p/11827109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!