为什么我无法推入数组并在javascript函数参数中使用它?

时间:2015-07-13 12:02:58

标签: javascript arrays

为什么b和c在下面的代码中不相同? 第2行中语句执行的顺序是什么?

UIGestureRecognizerStateChanged

2 个答案:

答案 0 :(得分:5)

.push()函数返回数组的新长度,而不是数组本身。因此,b被初始化为3个元素的空数组,因为.push()返回3(在将1添加到数组a的末尾之后)。

答案 1 :(得分:0)

您还可以使用slice函数克隆数组,以替代构造函数。如果您希望a保持不变,请使用这种方式。

var a = [1,2];
var b = a.slice(); 
b.push(1);            // [[1, 2, 1]]
var c = b.slice();    // [[1, 2, 1]]