Board logo

标题: js引用类型赋值不改变原对象值 [打印本页]

作者: xiexie    时间: 2023-12-28 13:34     标题: 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;

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




欢迎光临 PHP开发笔记 (http://phpvi.com/) Powered by Discuz! 6.1.0