【发布时间】:2014-10-01 16:03:32
【问题描述】:
这里有一些代码:
var a = [1,2,3];
var b = [5,4];
var c = 6;
a.push(b);
console.log(a);
b[0] = 1;
console.log(a);
console.log(b);
a.push(c);
console.log(a);
c = 7;
console.log(a);
这是控制台中的结果:
[ 1, 2, 3, [ 5, 4 ] ]
[ 1, 2, 3, [ 1, 4 ] ]
[ 1, 4 ]
[ 1, 2, 3, [ 1, 4 ], 6 ]
[ 1, 2, 3, [ 1, 4 ], 6 ]
谁能告诉我为什么在将 b 数组的第一项推送到 a 数组后更改它也会影响这里的 a 数组?例如,当我更改推送到数组的 c 变量的值时,它不会影响 a 数组,这也是我希望 b 发生的情况。
【问题讨论】:
-
为了衡量您目前的理解,您希望
b = [5,4]; c = b; c[0] = 1; console.log(b);的表现如何? -
console.log(b) 应该是 [5,4] 但我猜它会是 [1,4]。但这就是我要问的,为什么会这样?
-
当然;我只是想确保您的困惑与
push无关,而是更广泛地适用于数组引用。
标签: javascript arrays variables console