我有可能是一個愚蠢的問題。在下面的代碼中,函數doStuff似乎將myArray重新分配給一個空數組,但是當在控制檯中嘗試它時,myArray仍然是[2,3,4,5]。在Javascript中引用數組
var myArray = [2, 3, 4, 5];
function doStuff(arr) {
arr = [];
};
doStuff(myArray);
console.log(myArray)// => [2,3,4,5]
此外,一個功能,修改陣列似乎很好地工作。例如:
function changeSecondIndex(arr){
arr[2] = 25;
}
changeSecondIndex(myArray)
console.log(myArray) // => [2,3,25,5]
有人能幫我理解這裏發生了什麼嗎?謝謝。
的[使用Javascript傳遞數組通過值的功能,留下原始陣列不變](可能的複製http://stackoverflow.com/questions/14491405/javascript-passing-arrays-to-函數的價值,離開原來陣列unaltere) – ManoDestra
@ManoDestra這裏的問題是'爲什麼會發生',並在該職位的問題是'如何解決它'。從我的觀點來看,有兩個不同的問題。 –
這個問題在被理解時由另一個回答。 – ManoDestra