如果数组是通过引用传递的,那么下面的方法将如何工作?

Fra*_*ank 3 javascript arrays

var myarray = []
var array1 = [1,2,3]
myarray.push(array1)
array1 =[2,3,4]
myarray.push(array1)
console.log(myarray)
Run Code Online (Sandbox Code Playgroud)

我懂了

[[1,2,3],[2,3,4]。

不是吗

[[2,3,4],[2,3,4]

如果我通过引用?

谢谢

编辑:我猜这是因为= [2,3,4]创建一个新对象并分配array1引用它而不是相反

Ele*_*Ele 6

您没有在修改变量(数组),而是在重新分配了新值。

var myarray = [];
var array1 = [1, 2, 3];
myarray.push(array1);
array1.push(2, 3, 4); // Modifying the array in memory.
//myarray.push(array1);
console.log(myarray);
Run Code Online (Sandbox Code Playgroud)