全局变量的值发生了变化,javascript

时间:2013-03-17 14:27:41

标签: javascript jquery variables

我有这段代码片段,我不知道变量值的变化原因。

while (increment > 0) {
        for (i = increment; i < n; i++) {
            var unsorted = list;
            console.log(unsorted + " -> unsorted" + i);
            var temp = list[i];
            var j = i;
            while (j >= increment && list[j - increment] > temp) {
                list[j] = list[j - increment];
                j -= increment;
            }
            list[j] = temp;
            console.log(unsorted + " -> must not change" + i);
            console.log(list + "-> must not be the same below");
        }
 }

当我再次记录变量unsorted时,值已更改?为什么呢?

1 个答案:

答案 0 :(得分:5)

你只有一个阵列。

var unsorted = list创建第二个引用,指向相同的数组实例。

相反,您可以调用list.slice(),它返回数组的(浅)副本。