var arr = ["d","b","c"]
var a1 = arr
arr.sort()
arr = ["a","b","w"]
console.log(a1) //printing [ 'b', 'c', 'd' ]
在上面的代码片段中,.sort()操作在打印a1时得到反映。但是,当我重新分配arr时,为什么a1在打印时不是指新的值?为什么以下Javascript代码片段的行为如此?
var arr = ["d","b","c"]
var a1 = arr
arr.sort()
arr = ["a","b","w"]
console.log(a1) //printing [ 'b', 'c', 'd' ]
在上面的代码片段中,.sort()操作在打印a1时得到反映。但是,当我重新分配arr时,为什么a1在打印时不是指新的值?为什么以下Javascript代码片段的行为如此?
var arr = ["d","b","c"]
arr
的值以该数组var a1 = arr
arr
到a1
值,现在这两个变量保持对这个数组的引用arr.sort()
arr = ["a","b","w"]
arr
的值以该数组a1
是未修饰的参考,其值仍然是第一阵列
你重新分配ARR的引用,不A1。这对我来说很明显。 JS中的变量不会像指针一样行事。有基础研究的 – nicovank
你可以找到答案。 – Belfordz
这是编程的基础:值和参考。 'a1 = arr'表示您将arr的引用赋值为变量a1的值。因此,所有发生在a1上的事情都会影响到arr,因为它们指向相同的值。 (数组[d,b,c])。 – Kai