javascript - 数组重新/赋值引用更改

标签 javascript

在 JavaScript 中,数组是对象,因此通过引用传递。所以

var a = ["a"];
var b = a;
console.log(b);
a[0] = "wtv";
console.log(b);

将改变b值。

我不明白的是为什么

var a = ["a"];
var b = a;
console.log(b);
a = ["wtv"];
console.log(b);

没有改变b值吗?这背后的原因是什么?

最佳答案

因为a指向的内存中的值被赋值a = ["wtv"];改变了。

在第一个示例中,您更改了 a 的一部分/属性,而内存中 a 指向的对象保持不变。

解释它的图像:

enter image description here

关于javascript - 数组重新/赋值引用更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34704527/

相关文章:

javascript - 计算文本选择的 xy 位置

javascript - d3 : How to add border to a circle on an if-condition?

javascript - 如何更改 Ext.MessageBox 消息中的行?

javascript - 测试 JS 中的 SVG mask 支持

javascript - 打字时向数字添加逗号

javascript - Ext.Create 和 this.callParent

javascript - 如何根据单击的图像播放声音

javascript - 自动化 Javascript 单元测试...从哪里开始?

javascript - jquery:使用字符串作为函数(错误:字符串不是函数)

javascript - 将数学字符串转换为 JavaScript 表达式