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

Inflearn Community Q&A

hangja63635248's profile image
hangja63635248

asked

JavaScript Beginner: Building a Strong Foundation

3. Creation of Object instances, getting primitive value

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

Written on

·

147

0

선생님 안녕하세요.

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

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

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

oopjavascript

Answer 2

1

tonextday님의 프로필 이미지
tonextday
Instructor

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

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

hangja63635248님의 프로필 이미지
hangja63635248
Questioner

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

0

tonextday님의 프로필 이미지
tonextday
Instructor

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

hangja63635248님의 프로필 이미지
hangja63635248
Questioner

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

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

var obj3 = {name:'value'};

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

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

hangja63635248's profile image
hangja63635248

asked

Ask a question