JavaScript에서 객체의 참조 전달
배열과 객체는 다른 기본 데이터 타입과는 약간 다릅니다. 차이점은, 배열을 저장하는 변수는 실제로 배열을 포함하지 않고 단순히 참조 한다는 점입니다.
실제로 이것은 객체를 다른 변수에 할당할 때, 두 변수가 모두 동일한 객체를 참조하게 된다는 것을 의미합니다. 실제로 해보겠습니다. 다음과 같은 객체가 있다고 가정해 봅시다:
let obj1 = {a: 1, b: 2, c: 3};
한 변수에서 다른 변수로 할당해 봅시다:
let obj2 = obj1;
변수 중 하나를 변경해 봅시다:
obj2.a = '!';
그 결과 변경 사항은 다른 변수에서도 볼 수 있습니다:
console.log(obj1); // {a: '!', b: 2, c: 3}
코드를 실행하지 않고, 무엇이 콘솔에 출력될지 결정하십시오:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
코드를 실행하지 않고, 무엇이 콘솔에 출력될지 결정하십시오:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
코드를 실행하지 않고, 무엇이 콘솔에 출력될지 결정하십시오:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);