一、引言
最近在写微信小程序项目的时候,第一次接触到了 JavaScript。
于是乎,在一个场景中,我写了如下的代码:
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 的值并没有发生变化了。
继续阅读