我没有找到合格的标题,但这是我不明白的地方。
假设我们使用$ .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文档,但没有找到任何提示,有人能解释一下这是怎么回事吗?
答案 0 :(得分:3)
它与jQuery或$.map
方法无关。当在Javascript中通过引用传递非基本类型时,这是默认行为。因此,$.map
返回一个对象(类似数组的集合),当你将它分配给两个变量时,你基本上只是分配对同一个对象的引用。任何其他对象(或数组)都会发生同样的情况:
var tempData = [1,2,3];
var vector1 = tempData;
var vector2 = tempData;
对vector1
的更改会影响vector2
。