我在使用 javascript 时遇到了一个特殊问题。我有一个临时变量,在加载页面时在其中存储了一个值。然后我必须对某些事件执行一些数据过滤,因此我将其分配给另一个变量并执行过滤,如下所示:
var myVar = tempVar;
myVar
是一个新变量,最初 tempvar
有两个数组元素。过滤后,我会将值分配给 myVar
。现在奇怪的事情发生了。当 myVar
值发生变化时,tempVar
值也会自动发生变化。有谁知道为什么会发生这种情况?如果是这样,你能告诉我如何将变量值分配给另一个变量并在不更改变量值的情况下执行操作吗?
最佳答案
这是因为您正在新变量中创建对数组的引用,而不是复制它。因此,myVar
和 tempVar
都指向同一个变量。
要克隆数组,请使用 slice(0)
:
var myVar = tempVar.slice(0);
关于Javascript数组值自动改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24008636/