关于深拷贝、浅拷贝的的简单理解可以参见本人的这篇博客https://blog.csdn.net/sinat_37680470/article/details/81110025
开发过程中遇到了数组和对象拷贝的坑,所以在这里记录一下,以便日后查看!
let objArr = [
{
name: '小明',
id: 1
},
{
name: '小王',
id: 2
}
]
let getName = [];
getName.push(objArr[0])
getName.forEach(item => {
item.name = '小丽';
})
console.log(objArr)
console.log(getName)
在打印值中可以看到,档改变getName中的值时,objArr中的值也会发生改变,这就是一个浅拷贝的过程,当拷贝出来的值发生改变时被拷贝的对象也会发生变化。
实现深拷贝的方法:
1.JSON.parse(JSON.stringify(objArr[1]))
2.使用jq的extend方法
let name = {};
$.extend(true,name, objArr[1])