我复制到OBJ1 OBJ2但是当我做出obj2的对象OBJ1值的变化也在发生变化。如何停止?
let p24: ProductModule=new ProductModule();
p24= this.productlist[g];
p24.variants=[];
p24.variants.push(p.variants[h]);
this.newproductlist.push(p24);
这里this.productlist[g]
是一个数组,但是当我执行p24.variants=[];
acction值内this.productlist[g]
也成为空
有多种方法克隆对象在Javascript。
最简单的方法(深克隆/复印件);
p24= JSON.parse(JSON.stringify(this.productlist[g]));
注:通过这样做,你可能会失去原来的类型的对象。
或者你也可以看看Object.assign,Object.create和扩散(...对象)操作员通过JGFMK的建议
当您指定JavaScript对象到另一个对象,都将指向同一个内存位置。那是,如果你一个对象上更新的原因,同样会被更新的另一个。为了避免这种情况
选项1 :
p24 = JSON.parse(JSON.stringify(this.productlist[g]));
选项2:
p24 = {...this.productlist[g]};