我在理解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将仅引用该数组,更改分配的数组不会影响该数组本身。
最佳答案
保存对象的变量的值是对该对象的引用。也就是说,内存中的某个位置有一个数组,并且array
和assignedArray
都引用相同的位置。语句assignedArray = array
将array
的值(对数组的引用)分配给assignedArray
,以便它们都引用相同的内容。