Tôi có một câu hỏi ngu ngốc. Trong đoạn mã dưới đây, hàm doStuff xuất hiện để gán lại myArray cho một mảng trống, nhưng khi thử nó trong giao diện điều khiển, myArray vẫn là [2,3,4,5].Tham chiếu các mảng trong Javascript
var myArray = [2, 3, 4, 5];
function doStuff(arr) {
arr = [];
};
doStuff(myArray);
console.log(myArray)// => [2,3,4,5]
Hơn nữa, một chức năng mà đổi mảng dường như làm việc tốt. Ví dụ:
function changeSecondIndex(arr){
arr[2] = 25;
}
changeSecondIndex(myArray)
console.log(myArray) // => [2,3,25,5]
Ai đó có thể giúp tôi hiểu điều gì đang xảy ra ở đây? Cảm ơn.
có thể trùng lặp của [Javascript qua mảng chức năng theo giá trị, để lại mảng ban đầu không thay đổi gì] (http://stackoverflow.com/questions/14491405/javascript-passing-arrays-to- function-by-value-leave-original-array-unaltere) – ManoDestra
@ManoDestra Câu hỏi đặt ra ở đây là 'tại sao nó xảy ra' và câu hỏi trong bài đó là' cách sửa chữa nó'. Hai câu hỏi khác nhau từ quan điểm của tôi. –
Câu hỏi này được trả lời bởi người khác khi nó được hiểu. – ManoDestra