前几天在研究深拷贝的时候,看到网上很多的方法,但是大多都是使用循环递归判断其类型然后使用不同的处理方式对其进行深拷贝,比较麻烦,因为在js中对象跟json结构类似,所以我在想是否可以用JSON对象进行完成。
先定义一个对象:
let userdata = {
name: '李四',
age: 17,
server: ['一号服务器', 1],
goods: {
name: '木剑',
many: 10000
}
}
首先使用JSON.stringify方法将目标对象转换为json字符串
JSON.stringify(userdata)
得到一串JSON格式的字符串,再通过JSON.parse方法转换为JS对象
let copy = JSON.parse(JSON.stringify(userdata))
输出copy的值:
并尝试改变其中的值:
copy.goods.name = '铁剑';
输出结果:
原变量:
完成深拷贝