Javascript解绑变量

时间:2016-06-01 22:05:08

标签: javascript arrays

我有以下代码复制变量值然后更改其值。



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;
&#13;
&#13;

但不知何故,这也改变了第一个变量值

如何使变量A保持其值?

1 个答案:

答案 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()方法进行深层复制。