Javascript Object   자바스크립트 객체

(2022-02-28)

객체 , Object


1. 자바스크립트 객체의 특징

  ㅇ 모든 것을 객체로 바라다 봄
     - 함수도, 배열도, 변수도, 데이터도 모두 객체임
        . 결국, 모든 것을 객체를 통해 참조하여 값으로 처리할 수 있음
           .. 例) 데이터객체 참조를 통해 값으로 변환될 수 있는 객체임
           .. 例) 함수도 그 자체를 전달인수나 리턴 값으로 취급할 수 있는 일급 객체 임
                  
  ㅇ 이름을 갖는 다수의 프로퍼티(변수,함수,배열 등)들의 집합체 임
     - 여기서, 프로퍼티(속성)은, `이름(키)`와 `값`의 쌍 이며,
     - 이때, 값은 모든 자료형(원시타입,객체타입)이 가능하고, 표현식까지도 가능함 
        . 즉, 그 값이 다른 객체의 참조를 갖을 수 있으며,
        . 만일, 그 값이 함수 객체의 참조를 갖으면, 이를 메서드 라고 함

  ㅇ 동적으로/유연하게 객체의 구조와 동작방식을 바꿀 수 있음
     - 즉, 동적으로 객체프로퍼티(속성)를 추가,제거,변경할 수 있음

  ㅇ 구현 관점으로 볼 때, 연상 배열 또는 해시로써 취급됨 
     - 즉, 이름과 키로 접근 가능한 배열로써 구현되고 사용됨


2. 자바스크립트 객체의 구분

  ※ ☞ 자바스크립트 객체 구분 참조
     - 코어 객체(core object) / 내장 객체(built-in object) / 네이티브 객체(native object)
        . 자바스크립트 언어 내부에 내장되어 있는 객체
     - 호스트 객체 (host object) : 실행 환경 마다 다르게 덧붙여 존재하는 객체
        . 즉, 운영체제,웹브라우저 마다 달라짐
     - 특정 용도 객체 : 래퍼 객체, Array 객체, Map 객체, Set 객체, Math 객체 등
     - 사용자 정의 객체 (user-defined object)
        . 사용자가 직접 정의한 객체


3. 자바스크립트는, `프로토타입 기반의 객체지향 언어` 임

  ※ ☞ 프로토타입 객체/부모 객체 참조
     - 자바스크립트는, 객체지향상속성 개념과 유사하지만, 이와달리,  
     - 모든 객체는 자신의 부모 역할을 하는 프로토타입 객체를 가리키는
     - 숨겨진 프로퍼티를 갖고 있게 됨


4. 자바스크립트 객체의 구현 및 생성,저장,접근객체의 구현 형태                                               ☞ 연관 배열 참조
     - 여러 다른 형태의 데이터를 이름(키)과 값에 의해 한 쌍으로 묶어 모은 복합 데이터객체의 생성,저장,접근                  ☞ 자바스크립트 객체의 생성 저장 접근 참조
     - 객체 생성 : `객체 리터럴`, `생성자(Constructor)`로 생성 가능
     - 객체 저장 : 변수, 배열 내 요소, 객체프로퍼티 등 다양한 곳에 저장 가능
     - 객체 접근 : 점 접근법(.), 대괄호 접근법([])에 의해 객체 내부에 접근 가능


5. 자바스크립트 객체의 활용객체프로퍼티(키)의 열거 방법
     - for in 문
     - Object.keys() 메소드
     - Object.getOwnPropertyNames() 메소드

  ㅇ 바탕이 되는 생성자를 취득(생성)하는 방법 : constructor 프로퍼티


6. [참고사항]  자바스크립트 객체의 특징들을 확인,판단하는 방법객체 길이의 확인 방법 : Object.keys(obj).length 프로퍼티
     - keys()는, 객체의 키들을 배열화시켜 배열 객체를 반환하는 메소드임
     - length는, 배열 객체의 길이를 반환하는 프로퍼티임

  ㅇ 객체 프로퍼티의 소속 여부를 확인하는 방법 : in 연산자
     - 例) myMember in obj;   =>  소속 멤버이면 : true, 아니면 : false

  ㅇ 객체 프로토타입이 특정 객체프로토타입인지를 확인하는 방법 : isPrototypeOf() 메소드
     - 例) myObj.prototype.isPrototypeOf(thatObj);  =>  특정 프로토타입이면 : true

  ㅇ 객체 인스턴스가 특정 생성자에 의해 생성된 것인지를 판단하는 방법 : instanceof 연산자
     - 例) myInstance instanceof specialObj;  =>  myInstance가, specialObj 내 생성자에 의해
                                                  생성된 인스턴스이면, true 반환

  ㅇ 객체 내 모든 프로퍼티 어트리뷰트를 확인하는 방법 : Object.getOwnPropertyDescriptors() 메소드
     - 例) Object.getOwnPropertyDescriptors(specialObj);  =>  특정 객체의 모든 프로퍼티 어트리뷰트
                                                              들을 나열함

  ㅇ 객체 내부를 비교적 잘 들여다 볼 수 있는 방법 : console.dir(specialObj) 콘솔 객체

JS 객체
   1. JS 객체   2. JS 객체 구분   3. JS 객체의 생성 저장 접근   4. JS 클래스   5. 프로토타입 객체   6. 프라미스 객체   7. 일급 객체   8. 래퍼 객체   9. 콘솔 객체   10. this 참조   11. 이터레이터   12. 제너레이터   13. 범용 객체 (Object object)  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"