对象的深浅拷贝方法

我们两清 提交于 2019-12-08 04:50:52

对象的浅拷贝:

Object.assign()
特点: 浅拷贝, 对象的合并

var obj1 = { 'one': { 'two': 2 } }
var obj2 = Object.assign({}, obj1)

obj1 == obj2 //false
obj2.one.two = 22;
obj1.one.two = ? //22 受影响变成22

//不过, 如果你只是改变对象的浅层的话,就不会受影响了, 效果如下
obj2.one = { 'three': 3 }
obj1.one = ? // {two: 22}

JSON.parse(JSON.stringify())
特点: 深拷贝

var obj3 = { 'one': { 'two': 2 } }
var obj4 = JSON.parse(JSON.stringify(obj3))

//这时候我们拷贝出来的这个obj4的值
obj4.one.two = 22

obj3.one.two = ? // 2
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!