有人可以解釋爲什麼在一個函數(nextInLine)裏的數組引用(改編)操作更改全局數組中的值(我知道)在我的函數內在全球陣列globalArr上運行?全局聲明數組的時候沒有特別的功能
我認爲在傳遞給函數的值的函數中操作基本上就像在局部變量上操作一樣,我必須從函數內引用全局變量或返回值,如果我想讓這些值可訪問功能之外。
https://codepen.io/jakeNesom/pen/eWMXdP?editors=1111
function nextInLine(arr, item) {
arr.push(item);
item = arr.shift();
return item ;
}
// Test Setup
var globalArr = [1,2,3,4,5];
// Display
console.log("Before: " + JSON.stringify(globalArr));
console.log(nextInLine(globalArr, 10)); // Modify this line to test
console.log("After: " + JSON.stringify(globalArr));
的[可能的複製是JavaScript的一個通逐引用或傳遞值語言?](http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language) – rmalviya