$ .map jquery就像一个指针

时间:2015-11-01 20:11:27

标签: jquery

我没有找到合格的标题,但这是我不明白的地方。

假设我们使用$ .map

创建一个数组
var categoriesTemp = ['a','b','c']
var tempData = $.map(categoriesTemp,function(el,i){
            return 0;
        });

之后我将临时表分配给两个不同的变量

var vector1 = tempData;
var vector2 = tempData;

我不明白的是,当我更改vector1中的值时,它会影响vector2,反之亦然,例如:

vector1[1] = 1;

这两个变量将具有以下值:

Vector1 = [0, 1, 0]
Vector2 = [0, 1, 0]

我已经阅读了关于$ .map的jquery文档,但没有找到任何提示,有人能解释一下这是怎么回事吗?

1 个答案:

答案 0 :(得分:3)

它与jQuery或$.map方法无关。当在Javascript中通过引用传递非基本类型时,这是默认行为。因此,$.map返回一个对象(类似数组的集合),当你将它分配给两个变量时,你基本上只是分配对同一个对象的引用。任何其他对象(或数组)都会发生同样的情况:

var tempData = [1,2,3];

var vector1 = tempData;
var vector2 = tempData;

vector1的更改会影响vector2