问题:一个对象赋值给另一个对象后,新对象的值更改原对象的参数值随之变化(即改变新对象的值会影响原对象值)
var a = {name: 'siryang'};
var b = a;
b.name = 'maolin';
console.log(a.name); //maolin
解决方法
方法一:
var a = {name: 'siryang'};
var b = JSON.parse(JSON.stringify(a));
b.name = 'maolin';
console.log(a.name); //siryang
方法二:
var a = {name: 'siryang'};
var b = Object.assign({},a);
b.name = 'maolin';
console.log(a.name); //siryang
本文探讨了JavaScript中对象赋值导致的引用问题,通过两个实例演示如何使用JSON.parse(JSON.stringify())和Object.assign()实现对象的深拷贝,从而避免修改一个对象时影响到另一个对象。
291





