- 对象之间如何进行深拷贝
this.dataList = JSON.parse(JSON.stringify(this.dataForm));
dataForm和dataList是两个对象,如果直接赋值,那么就会进行浅拷贝。两个对象指向同一个存储地址,两个对象任意一个发生改变都会影响另一个。
我们可以把被复制的对象进行JSON.stringify()转换成字符串,然后再采用JSON.parse()把字符串转换为js对象再进行赋值,这样进行的是深拷贝,复制的对象和被复制的对象都会拥有自己的存储地址。这样两个对象的内容发生改变时不会相互影响。便于进行对象的比较。\ - 对象之间进行比较 \
this.dataList === this.dataForm
直接比较,比较的是两个对象的引用,即跟存储地址有关。
如果我们要比较两个对象的属性和内容的话,不能这样进行比较。
我们可以把两个对象都进行字符串化再进行比较。
JSON.stringify(this.dataForm) === JSON.stringify(this.dataList)