对于减速器中的一种情况,我有以下代码
case CHART_CHANGE: {
const {method,copiedArray} = payload;
let ref = copiedArray
let swapped = bubblesort(copiedArray) //<------here
console.log(ref)
console.log(swapped)
}
}
问题是这样的,正如您所看到的,在涉及到 bubblesort 函数之前,我已分配了变量ref。但是,当我运行程序时,ref变量与swapped变量具有相同的值。为什么呢?
答案 0 :(得分:2)
在javascript对象中(数组是对象)是通过引用分配的,因此copiedArray
和ref
引用(指向)同一对象。如果您更改对象的内容(并且您的bubblesort
函数似乎已就位-在内部对数组进行更改/更改),则更改在所有变量中均可见:copiedArray
,{ {1}}和ref
。
swapped