JavaScript 踩坑:对象赋值如何能够做到不影响原对象

一、引言

最近在写微信小程序项目的时候,第一次接触到了 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 的值并没有发生变化了。

Enjoy JavaScript,
To be Stronger:)

猜你喜欢

转载自blog.csdn.net/u012814856/article/details/81078279