gpt4 book ai didi

javascript - 为什么将新数组分配给变量会更改其引用而不是值?

转载 作者:行者123 更新时间:2023-11-28 18:42:07 25 4
gpt4 key购买 nike

我想知道为什么如果我在 JS 中运行它,它会在我更改数组的值后创建对数组的新引用:

var array = ["1","2","3"];
var copyOfArray = array;
console.log(copyOfArray); // ["1", "2", "3"]
var secondArray = ["2","3","4"];
array = secondArray;
console.log(array); //["2","3","4"]
console.log(copyOfArray); //["1", "2", "3"]

为什么对数组的引用没有更新?

最佳答案

当你这样做时:

var array = ["1","2","3"];
var copyOfArray = array;

这将创建一个数组并使copyOfArray指向同一个实例

array --> instanceA
copyOfArray --> instanceA

创建第二个数组将创建一个新实例,而前两个数组将指向旧实例:

var secondArray = ["2","3","4"];

array --> instanceA
copyOfArray --> instanceA
secondArray --> instanceB

现在在做 数组=第二个数组;

array 指向的引用更新为 secondArray 指向的引用

array --> instanceB
copyOfArray --> instanceA
secondArray --> instanceB

这是有道理的,因为您指向 secondArray 指向引用,而不是 secondArray本身

关于javascript - 为什么将新数组分配给变量会更改其引用而不是值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35975560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com