Written on
·
83
0
obj1값과 obj2의값이 @5003번 주소를 가리키는데
obj2에 obj1이라는 변수가대입 되는 것이니
이름: obj2
값:@1004
이렇게 되는건 잘못 된걸까요?
var obj2=@5003;
이렇게이해하면될까요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. rhkdtjd_12님.
자바스크립트에서 객체 변수는 실제 객체가 저장된 메모리 주소를 가리키고 있습니다. 귀하의 질문을 보고 이 부분에 관한 설명을 드리겠습니다.
obj1
과 obj2
가 둘 다 동일한 객체를 가리키고 있을 때, 그들은 실제로 같은 메모리 주소를 참조하게 됩니다. 여기서 중요한 것은 객체에 대한 참조 간의 관계입니다.
변수 obj1과 obj2가 같은 주소(@5003)를 가리킬 때: 이것은 두 변수가 동일한 객체를 참조하고 있음을 의미합니다. 이러한 경우, obj2 = obj1
은 객체 자체가 아니라, obj1
의 참조(주소)값을 obj2
에 대입합니다.
질문에서 제시된 내용:
var obj2 = @5003;
라는 직접적인 메모리 주소 할당은 자바스크립트 문법에서는 사용하지 않는 방식입니다. 이는 내부적인 동작을 이해하기 위한 설명일 수 있습니다.obj1
에서 obj2
로 대입했을 때, 단순히 두 변수가 같은 객체를 참조하게 되어, 객체 내부 프로퍼티를 변경하면 두 변수에서 모두 변경된 값이 보입니다.아래 링크에서 관련된 기존의 답변들을 확인하시면 도움이 될 것 같습니다:
이 링크들에서 참조형 데이터의 본질과 메모리 할당에 대한 추가적인 설명을 얻을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.