我在理解Java语言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将仅引用该数组,更改分配的数组不会影响该数组本身。

最佳答案

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

10-06 05:27