ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Built-in object 란 ? (인스턴스)
    JavaScript 2020. 9. 23. 17:48

    Built-in object 는 JavaScript 에서 기본적으로 제공하는 객체들 이다. 

    Number, String, Boolean 등과 같은 객체들이 존재하며 new Number ("123") 과 같이 사용할 수 있다.

    해당 객체들을 생성자 또는 new 연산자와 같은 것을 사용하여 생성을 하게 되면 객체의 인스턴스가 생성되게 되며 이때 객체의 protoType (프로퍼티, 매서드가 존재함) 가 정의 되어있는 메모리의 주소를 복사하여 인스턴스를 생성하게 된다.

    이렇게 복사한 주소에는 prootType 의 프로퍼티, 매서드와 같은 정보가 담겨있는 주소가 있으므로 해당 주소를 참조하여 객체가 제공하는 많은 기능을 사용할 수 있는 구조이다.

     

    위의 자료는 Number 객체가 어떻게 이루어져 있는지를 보여주는 자료이다.

    프로퍼티 (키 : 벨류) 형태의 집합인 객체 자료 인 것을 볼 수 있으며 이때

    MAX_SAFE_INTEGER (Key) : 9007199254740991 (Value) 또는 __proto__ (Key) : fuction(Value) 형태와 같은 프로퍼티들의 모음 으로 구성되어 있다.

    이제 Number 객체가 어떠한 구조로 이루어져 있는지 알아 봤으니 new 연산자를 통해 Number 객체의 인스턴스를 생성하여 어떠한 구조로 이루어져 있는지 살펴보자

     

     

    new 연산자를 통해 userNum 이라는 새로운 Number 객체의 인스턴스를 생성한 모습이다.

    자세히 보면 매개 변수로 넘겨준 "123" 이라는 문자열이 프로미티브 벨류 (Key) : 123 (Value) 으로 할당 된 것을 볼 수 있으며 위에서 본 Number 객체의 프로퍼티 요소중 __proto__ 즉 Number 객체의 protoType이 정의 된 주소만 참조하는 것을 알 수 있다.

    이는 Number 객체의 모든 프로퍼티 요소를 복사하는 것은 메모리 낭비가 발생 하기 때문에 해당 객체의 프로토 타입의 요소들이 정의 된 메모리의 주소만을 복사하여 사용하기 위함이다. 따라서 객체의 인스턴스는 객체가 가지는 프로토 타입의 프로퍼티 정보들이 담긴 메모리의 주소를 가져온 다는 것을 확인 할 수 있다.

     

    위의 내용을 요약하면 다음과 같다.

    빌트인 된 객체는 키와 벨류 값을 가지며 이러한 객체를 이용하여 만든 인스턴스는 객체의 프로토 타입이 정의되어 있는 메모리의 주소와, 해당 인스턴스가 가지는 기본 값 (프로미티브 벨류) 을 가진다. 

    따라서 객체가 제공하는 많은 기능 (toString, toFixed) 을 사용한다는 것은 객체가 정의하고 있는 프로토타입의 프로퍼티의 Key 값을 통해 접근 하게 되며 이때 Key값에 대응하는 벨류 값에는 Method 가 정의 되어 있으며 매개변수를 넘겨주는 동작을 통해 인스턴스의 기본 값 즉 프로미트브 벨류에 알맞는 값을 반환하는 구조이다.

    'JavaScript' 카테고리의 다른 글

    함수 호출구조  (0) 2020.10.05
    Built in object 의 생성 (인스턴스)  (0) 2020.10.05
    Built-in 이란 ?  (1) 2020.08.17
    Object Type  (0) 2020.08.17
    자료형  (0) 2020.08.11

    댓글

Designed by Tistory.