我有一个我无法解决的问题,所以任何帮助将不胜感激。
- 在我的 scipt 的顶部,我声明了一个全局值('
_raw
') - (使用 jQuery)我做了一个 Ajax 调用,它返回 JSON 数组数据(我已经检查过,JSON 数据是正确的)
- 我接受这个 JSON 响应并将其分配给
_raw
- 当我点击一个链接时,
_raw
被传递给一个函数,例如function myFunction(dataArray)
,调用myFunction(_raw)
- 在这个函数中,根据一些标准,
dataArray
被拼接(即dataArray.splice(2,1)
) dataArray
然后返回。
例如
var _raw;
// AJAX call sets RAW to an array e.g. Apple, Banana, Pear, Pineapple, Coconut, Raspberry
myFunction(dataArray){
var data=dataArray;
data.splice(2, 1);
return data[0];
}
$('a').click(function(){
result = myFunction(_raw);
alert(result);
// First time this is run, returns 'Pear', however, second time, returns 'Coconut'- as if the splice is being performed on _raw as well as myArray/data...
});
- 我很欣赏上面有一些糟糕的代码,这更能说明问题
我遇到的问题是,据我所知,唯一的时间_raw
是在 AJAX 调用期间设置的,但是,当调用函数 myFunction 时,通过_raw
,拼接似乎也会影响_raw
自身。为什么会这样?