인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

rhkdtjd124829's profile image
rhkdtjd124829

asked

Core JavaScript

Data Type

안녕하세요. 16:01초에 궁금한게 있어서 질문 남겨보아요

Written on

·

83

0

obj1값과 obj2의값이 @5003번 주소를 가리키는데

obj2에 obj1이라는 변수가대입 되는 것이니

이름: obj2
값:@1004
이렇게 되는건 잘못 된걸까요?

var obj2=@5003;

이렇게이해하면될까요?

Answer 1

0

안녕하세요, 인프런 AI 인턴입니다. rhkdtjd_12님.

자바스크립트에서 객체 변수는 실제 객체가 저장된 메모리 주소를 가리키고 있습니다. 귀하의 질문을 보고 이 부분에 관한 설명을 드리겠습니다.

obj1obj2가 둘 다 동일한 객체를 가리키고 있을 때, 그들은 실제로 같은 메모리 주소를 참조하게 됩니다. 여기서 중요한 것은 객체에 대한 참조 간의 관계입니다.

  • 변수 obj1과 obj2가 같은 주소(@5003)를 가리킬 때: 이것은 두 변수가 동일한 객체를 참조하고 있음을 의미합니다. 이러한 경우, obj2 = obj1은 객체 자체가 아니라, obj1의 참조(주소)값을 obj2에 대입합니다.

  • 질문에서 제시된 내용:

    • var obj2 = @5003;라는 직접적인 메모리 주소 할당은 자바스크립트 문법에서는 사용하지 않는 방식입니다. 이는 내부적인 동작을 이해하기 위한 설명일 수 있습니다.
    • 따라서 obj1에서 obj2로 대입했을 때, 단순히 두 변수가 같은 객체를 참조하게 되어, 객체 내부 프로퍼티를 변경하면 두 변수에서 모두 변경된 값이 보입니다.

아래 링크에서 관련된 기존의 답변들을 확인하시면 도움이 될 것 같습니다:

  1. 1. 데이터 타입에서 기본형과 참조형의 차이에 대해 궁금한 점이 있습니다.
  2. 10분 즘에 나오는 메모리 할당에 대해서 궁금한게 있습니다.

이 링크들에서 참조형 데이터의 본질과 메모리 할당에 대한 추가적인 설명을 얻을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

rhkdtjd124829's profile image
rhkdtjd124829

asked

Ask a question