对象深拷贝
对象深拷贝
对象深拷贝
如下的代码:
var a = {‘name’: ‘wangying’};
var b = a;
b.name = ‘yingwang’;
console.log(a.name);
发现,a 对象里面的 name 居然 也变成了 yingwang。
这是为什么呢?
二、探索
经过我的探索,发现原来 JavaScript 中对象的赋值是默认引用赋值的,如果你想要复制赋值,则必须要重新分配对象,使用如下代码即可避免此问题:
var a = {‘name’: ‘wangying’};
var b = Object.assign({}, a);
b.name = ‘yingwang’;
console.log(a.name);
此时即可看到 a.name 的值并没有发生变化了。
Enjoy JavaScript,
To be Stronger:)
使用** Object.assign()** 方法复制对象 终极解决方案:JSON.parse(JSON.stringify(obj))
本文由作者按照 CC BY 4.0 进行授权