본문으로 바로가기

Object Vs Object()

Object와 Objcet()의 차이점을 알아보기에 앞서 다음 내용을 먼저 숙지해 봅니다.



Object()는 new Object()와 같이 인스턴스를 생성하여 반환한다.


그래서 new Object()와 파라미터를 지정하는 방법, 형태, 인스턴스 반환이 모두 같다. 

다만 new 연산자를 사용하지 않을 뿐이다.


그렇다면 Object와 Object()의 차이점은 무엇일까? 


아래 코드를 살펴보자.

// 빌트인 Object 객체를 obj1에 할당
var obj1 = Object;
console.dir(obj1);

// Object()로 새로운 Object를 생성하여 obj2에 할당
var obj2 = Object();
console.dir(obj2);


둘의 차이점은 ()호출 유무이다. 이 말은 빌트인 객체(이미 만들어진 객체)와 새로운 객체를 생성하여 할당했다는 점이다. 

빌트인 오브젝트를 할당한 곳에는 prototype: Object가 있으며 ()호출한 obj2의  출력결과에는 __proto__:Object가 있을 것이다. 


이는 Object()로 인스턴스를 생성하면 Object.prototype에 연결된 프로퍼티로 인스턴스를 생성하기 때문이고 이것이 인스턴스를 생성하는 기준이다.


아직까지 이해가 가지 않는다면 프로토타입에 대한 포스팅 해놓은 글을 다시 읽어보자.



Jaehee's WebClub