vue 深拷贝与浅拷贝
在vue中由于双向绑定机制,用等号直接赋值时,是传递的引用(内存地址索引),而不是直接传递的值,所以当被赋值的变量改变是会影响原始值,这种赋值方式就是所谓的浅拷贝。大多数时候,我们是不希望后续的变量操作影响原始值,所以这里就需要用到深拷贝。最简单的深拷贝方式是:可以先把dataA转换成字符串,然后在转换成对象...
·
在vue中由于双向绑定机制,用等号直接赋值时,是传递的引用(内存地址索引),而不是直接传递的值,所以当被赋值的变量改变是会影响原始值,这种赋值方式就是所谓的浅拷贝。
this.dataB = this.dataA;
this.dataB.a = 5;
console.log( this.dataA.a);//返回5
console.log( this.dataB.a);//返回5
大多数时候,我们是不希望后续的变量操作影响原始值,所以这里就需要用到深拷贝。最简单的深拷贝方式是:可以先把dataA转换成字符串,然后在转换成对象
this.dataB = JSON.parse(JSON.stringify(this.dataA))
this.dataB.a = 5;
console.log( this.dataA.a);//返回1
console.log( this.dataB.a);//返回5
更多推荐
已为社区贡献1条内容
所有评论(0)