VUE踩坑----赋值后原对象的值发生改变

//vue定义变量
data() {
return {
     //初始表格数组对象 tableData:[],
     //被赋值对象 cancelData:[] } }

问题原因是:

赋值时没有创建一个新的对象内存地址;

只是把cancelData的内存地址指向了tableData的内存地址,一旦tableData值发生改变,但内存地址不会发生改变,所以cancelData的值也会相对应改变

错误赋值使用

//tableData如果发生改变,cancelData也会发生改变
//因为指向的是tableData的内存地址

this
.cancelData[0]=this.tableData[0];

正确使用

//创建一个新的对象,指向新的内存地址

this
.cancelData[0]=JSON.parse(JSON.stringify(this.tableData[0]))
原文地址:https://www.cnblogs.com/tangxinwang/p/13706489.html