Written on
·
147
0
선생님 안녕하세요.
new Object({name:'value'})와 Object({name:'value'})도 같은 인스터스를 생성하는 게 맞을까요?
만약 그렇다면, new Object의 파라미터가 {key:value} 값으로 주어졌을 경우에는 new Object(), Object(), Object 리터럴 세 가지가 모두 동일한 인스턴스를 생성한다고 생각하면 될까요..?
그리고 좋은 강의 정말 감사드립니다... 선생님께서는 자바스크립트의 도사라는 생각이 드네요...
Answer 2
1
var aa = 100, bb = 100;
(aa === bb) 형태의 비교는 값을 비교하므로 true가 반환됩니다.
반면, 작성한 3가지 형태는 인스턴스를 생성하며, 메모리에 설정됩니다. obj1, obj2, obj3은 설정된 메모리 주소를 참조하게 됩니다. (obj1 === obj2)를 비교하면, 인스턴스를 비교하는 것이 아니라, obj1이 참조하는 메모리 주소와 obj2가 참조하는 메모리 주소를 비교하며 주소가 다르므로 false가 반환됩니다. 강좌에서 이 내용을 다룹니다.
0
var obj1 = new Object({name:'value'});
var obj2 = Object({name:'value'});
var obj3 = {name:'value'};
obj1, obj2, obj3가 동일한 구성으로 되어 있는 것이 확인됩니다.
그런데 obj1 === obj2 이나 obj2 === obj3 이런식으로 비교하면 true가 아닌 false가 반환되더라구요ㅠㅠ
아 이제 이해가 됐습니다. 정말 감사드립니다....!!