Javascript Koans-数组引用

Javascript Koans-数组引用,javascript,arrays,Javascript,Arrays,我在理解Javascript koans中的一部分数组引用时遇到问题: it("should know array references", function () { var array = [ "zero", "one", "two", "three", "four", "five" ]; var assignedArray = array; assignedArray[5] = "changed in assignedArray"; expect(array[5]).t

我在理解Javascript koans中的一部分数组引用时遇到问题:

it("should know array references", function () {
  var array = [ "zero", "one", "two", "three", "four", "five" ]; 
  var assignedArray = array;
  assignedArray[5] = "changed in assignedArray"; 
  expect(array[5]).toBe('changed in assignedArray');
在这里,为什么更改assignedArray[5]会影响阵列?据我了解,,
assignedArray只引用数组,更改assignedArray不会影响数组本身。

保存对象的变量的值就是对该对象的引用。也就是说,内存中某处有一个数组,并且数组和assignedArray都指向同一个位置。语句assignedArray=array将数组的值(对数组的引用)分配给assignedArray,以便它们都引用同一个对象。

什么是Javascript koans?@RocketHazmat:我猜,可能有些js BookArray是对象,而对象类型的值是对这些对象的引用。所以array和assignedArray是两个不同的值,它们都是对同一事物的引用。如果通过其中一个,并对其后面的对象进行更改,则更改将通过另一个对象可见。这就像C语言中的指针一样。在原语数组上,可以使用slice获得新的副本:var assignedArray=array.slice;这篇文章和那篇相似:[所以你可以从这个链接得到你的答案]