发新话题
打印

js引用类型赋值不改变原对象值

js引用类型赋值不改变原对象值

在JS中对象的赋值是默认引用赋值的,如果改变了赋值对象原对象也会跟着改变,如果想要复制赋值,那么就需要重新分配对象:var a = {'name': 'zhangsan'};
var b = Object.assign({}, a);
b.name = 'lisi';

这样子就不会改变原对象下一层的值,但如果对象里面还存在对象
那么下一层在下一层还会改变原对象,有个最简单暴力的处理 两个对象的关联性的问题:

obj1 = { a: 0 , b: { c: 0}};
let obj3 = JSON.parse(JSON.stringify(obj1));    //这个管用
obj1.a = 4;
obj1.b.c = 4;

这样子原有对象里的对象就不会被改变了!

TOP

发新话题