Truyền đối tượng theo tham chiếu trong JavaScript
Mảng và đối tượng khác biệt đôi chút so với các kiểu dữ liệu nguyên thủy còn lại. Sự khác biệt ở chỗ một biến lưu trữ mảng thực chất không chứa mảng đó, mà chỉ đơn thuần tham chiếu đến nó.
Trong thực tế, điều này có nghĩa là khi gán một đối tượng cho một biến khác, cả hai biến sẽ tham chiếu đến cùng một đối tượng. Hãy cùng thử nghiệm trên thực tế. Giả sử chúng ta có đối tượng sau:
let obj1 = {a: 1, b: 2, c: 3};
Hãy gán nó từ biến này sang biến khác:
let obj2 = obj1;
Hãy thay đổi một trong các biến:
obj2.a = '!';
Kết quả là những thay đổi sẽ hiển thị cả trong biến kia:
console.log(obj1); // {a: '!', b: 2, c: 3}
Không chạy code, hãy xác định điều gì sẽ được in ra trong console:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Không chạy code, hãy xác định điều gì sẽ được in ra trong console:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Không chạy code, hãy xác định điều gì sẽ được in ra trong console:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);