• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

new Object()와 Object()에 대한 질문

21.05.17 11:51 작성 조회수 80

0

선생님 안녕하세요.

new Object({name:'value'})와 Object({name:'value'})도 같은 인스터스를 생성하는 게 맞을까요?

만약 그렇다면, new Object의 파라미터가 {key:value} 값으로 주어졌을 경우에는 new Object(), Object(), Object 리터럴 세 가지가 모두 동일한 인스턴스를 생성한다고 생각하면 될까요..?

그리고 좋은 강의 정말 감사드립니다... 선생님께서는 자바스크립트의 도사라는 생각이 드네요...

답변 2

·

답변을 작성해보세요.

1

var aa = 100, bb = 100;
(aa === bb) 형태의 비교는 값을 비교하므로 true가 반환됩니다.

반면, 작성한 3가지 형태는 인스턴스를 생성하며, 메모리에 설정됩니다. obj1, obj2, obj3은 설정된 메모리 주소를 참조하게 됩니다. (obj1 === obj2)를 비교하면, 인스턴스를 비교하는 것이 아니라, obj1이 참조하는 메모리 주소와 obj2가 참조하는 메모리 주소를 비교하며 주소가 다르므로 false가 반환됩니다. 강좌에서 이 내용을 다룹니다.

이하영님의 프로필

이하영

질문자

2021.05.18

아 이제 이해가 됐습니다. 정말 감사드립니다....!!

0

경험을 해야 남잖아요. 코드를 직접 작성해서 결과를 체크할 수 있는 사항인 것 같습니다. 체크하는 방법을 모르면 질문해주세요.

이하영님의 프로필

이하영

질문자

2021.05.17

var obj1 = new Object({name:'value'});

var obj2  =  Object({name:'value'});

var obj3 = {name:'value'};

obj1, obj2, obj3가 동일한 구성으로 되어 있는 것이 확인됩니다.

그런데 obj1 === obj2 이나 obj2 === obj3 이런식으로 비교하면 true가 아닌 false가 반환되더라구요ㅠㅠ