为什么b和c在下面的代码中不相同? 第2行中语句执行的顺序是什么?
UIGestureRecognizerStateChanged
答案 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]]