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;

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

posted @ 2018-09-28 12:28  小柒~  阅读(2633)  评论(0编辑  收藏  举报