Javascript Object   자바스크립트 객체

(2021-01-02)

객체 , Object


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

  ㅇ 모든 것을 객체로 바라다 봄
     - 함수도, 배열도, 변수도, 데이터도 모두 객체임
        . 결국, 모든 것을 객체를 통해 참조하여 값으로 처리할 수 있음
           .. 例) 데이터객체 참조를 통해 값으로 변환될 수 있는 객체임
           .. 例) 함수도 그 자체를 전달인수나 리턴 값으로 취급할 수 있는 일급 객체 임
                  
  ㅇ 동적으로/유연하게 객체의 구조와 동작방식을 바꿀 수 있음
     - 즉, 동적으로 객체프로퍼티(속성)를 추가,제거,변경할 수 있음

  ㅇ 자바스크립트 객체는, 이름을 갖는 프로퍼티(스트링,함수,배열 등)들의 집합체 임
     - 여기서, 프로퍼티(속성)은, `이름(키)`와 `값`의 쌍 이며,
     - 이때, 값은 모든 자료형이 가능하고, 표현식까지도 가능함 
        . 즉, 그 값이 다른 객체의 참조를 갖을 수 있으며,
        . 만일, 그 값이 함수 객체의 참조를 갖으면 메서드 라고 함

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


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

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


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

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


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


5. 자바스크립트 객체의 특징들을 확인,판단하는 방법객체 길이의 확인 방법 : Object.keys(obj).length
     - 여기서, keys()객체의 키들을 배열화시켜 반환하는 메소드임

  ㅇ 해당 객체의 소속 멤버(프로퍼티)인지 판단하는 방법 : in 연산자
     - 例) myMember in obj;   =>  소속 멤버이면 : true, 아니면 : false

  ㅇ 특정 생성자에 의해 생성된 인스턴스인지를 판단하는 방법 : instanceof 연산자

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


6. 자바스크립트 객체의 활용객체프로퍼티에 접근하는 방법 둘
     - 점 표기법
     - 대괄호 표기법

  ㅇ 객체프로퍼티의 열거 방법
     - for/in 문
     - Object.keys() 메소드
     - Object.getOwnPropertyNames() 메소드

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



Copyrightⓒ written by 차재복 (Cha Jae Bok)