我有以下代码复制变量值然后更改其值。
var a = [{name: 'John Doe'}];
var b = a;
document.write(b[0].name + '<br />');
document.write(a[0].name + '<br /><br />');
b[0].name = 'Jane Doe';
document.write(b[0].name + '<br />');
document.write(a[0].name + '<br />');
&#13;
但不知何故,这也改变了第一个变量值
如何使变量A保持其值?
答案 0 :(得分:0)
您只是将a
- 引用分配给b
。您可能想要做的是复制数组,以便对a
的更改不会反映到b
。有关JavaScript中的不同分配,请参阅this thread。
还要看fastest way to duplicate an array。它涉及不同阵列复制方法的速度。 快速回答是:
var b = a.slice();
slice()
方法创建一个新元素,其元素与原始元素相同。但要小心,它只是shallow copy。
您还可以使用JSON.stringify()
和JSON.parse()
方法进行深层复制。