Javascript Object   자바스크립트 객체

(2019-04-17)

객체, Object, 프로토타입 객체, 부모 객체

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

  ㅇ 모든 것을 객체로 바라다 봄
     - 함수도, 변수도, 데이터도 모두 객체임
        . 결국, 모든 것을 객체를 통해 참조하여 값으로 처리할 수 있음
           .. 例) 데이터도 객체 참조를 통해 값으로 변환될 수 있는 객체임
           .. 例) 함수도 그 자체를 전달인수나 리턴 값으로 취급할 수 있는 일급 객체 임
                  
  ㅇ 동적으로/유연하게 객체의 구조와 동작방식을 바꿀 수 있음
     - 즉, 동적으로 객체프로퍼티(속성)를 추가,제거,변경할 수 있음
        . 여기서, 프로퍼티(속성)은, `이름(키)`와 `값`의 쌍 이며,
        . 이때, 값은 모든 데이터타입이 가능하고, 표현식까지도 가능함 
           .. 즉, 그 값이 다른 객체의 참조를 갖을 수 있으며,
           .. 만일, 그 값이 함수 객체의 참조를 갖으면 메서드 라고 함

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


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

  ㅇ 코어 객체(core object) / 내장 객체(built-in object) / 네이티브 객체(native object)
     - 자바스크립트 언어 규약으로 정의되어짐 (ECMAScript 규약)
        . 자바스크립트 언어 내부에 내장되어 있는 객체들로써,
        . 특별히 선언 또는 정의하지 않고, 바로 이용할 수 있음

     - 내장 객체 종류
        . Global object  (전역 객체)
           .. 자바스크립트 인터프리터 혹은 웹브라우저가 새 페이지를 읽어들일 때 마다,
           .. 꽤 많은 전역 객체들을 생성함
           .. 자바스크립트의 기본 기능에 접근하기 위한 수단을 제공함
        . Object object  (범용 객체)
           .. 기능은 많지 않으나, 가장 많이 쓰이며, 데이터의 저장 및 전송에 적당함
           .. 모든 객체의 기본 객체(모든 객체모형)으로써,
              다른 객체객체의 공통적인 성질/기능을 제공
           .. 즉, 객체라고 이름 붙여진 모든 객체는,
              Object 객체에 정의된 프로퍼티메소드를 공통으로 이용 가능 함
        . Function object  (함수 객체)
        . Array object  (배열 객체)
        . String object  (문자열 객체)
        . Boolean object  (불리언 객체)
        . Number object  (숫자 객체)
        . Math object  (수학 객체)
        . Date object  (날짜 객체)
        . RegExp object  (정규표현식 객체)
        . JSON object  (JSON 객체)
        . 에러처리용 object 등
           .. (Error,EvalError,InternalError,RangeError,ReferenceError,SyntaxError,
               TypeError,URIError)
        . ECMAScript 6에서 추가된 것들
           .. Promise object
           .. Proxy object
           .. Map object
           .. Set object
           .. Symbol object

  ㅇ 호스트 객체 (host object)
     - 실행 환경 마다 다르게 덧붙여 존재하는 객체
        . 즉, 운영체제,웹브라우저 마다
     - 주로, 웹브라우저 확장 등에 쓰임
        . 클라이언트웹브라우저 기동시, 자동으로 생성되는 전역 객체로써,
           .. 동적으로 접근가능토록 구조화된 객체
        . 例) BOM, DOM, Ajax, HTML5 API 관련 객체들
           .. Window 객체Window 객체, Window 객체의 메소드 참조
           .. Window 객체의 하위 객체들 例) location,history,document,navigator,screen 등


3. 자바스크립트는, `프로토타입 기반의 객체지향 언어` 임프로토타입 객체 (부모 객체)
     - 마치, 객체지향상속성 개념 처럼,
        . 모든 객체는 자신의 부모 역할을 하는 프로토타입 객체를 가리키는
           .. 숨겨진 프로퍼티를 갖고 있게 됨
        . 비록, 생성된 인스턴스에 아무것도 정의하지 않더라도, 
           .. 원래부터/처음부터 사용할 수 있게되는 것
        . 즉, 생성된 인스턴스가 부모로부터 프로토타입 객체상속받고 있는 것임

  ㅇ 프로토타입 체인
     - 자바스크립트의 모든 객체는 부모 객체(프로토타입 객체)와 연결됨
     - 모든 객체는 내부 프로퍼티 [[Prototype]] 또는 __proto__ 를 가지고 있음
     - 즉, 어떤 객체의 [[Prototype]] 또는 __proto__ 프로퍼티는,
           그 객체에게 상속해 준 부모 객체를 가리킴

  ※ 따라서, 자바스크립트는 `프로토타입 기반의 객체지향 언어` 라고 불리움


4. 자바스크립트 객체의 활용객체의 형태
     - 여러 다른 형태의 데이터를 이름(키)과 값에 의해 한 쌍으로 묶어 모은 복합 데이터

  ㅇ 객체의 생성,저장,접근                  ☞ 자바스크립트 객체의 생성 저장 접근 참조
     - 객체 생성 : `객체 리터럴`, `생성자(Constructor)`로 생성 가능
     - 객체 저장 : 변수, 배열 내 요소, 객체프로퍼티 등 다양한 곳에 저장 가능
     - 객체 접근 : 점 접근법(.), 대괄호 접근법([])에 의해 객체 내부에 접근 가능

  ㅇ 객체 길이의 확인 방법 : Object.keys(객체명).length
     - 여기서, keys()는 객체의 키들을 배열화시켜 반환하는 메소드임

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


[JS 객체] 1. JS 객체 2. JS 객체의 생성 저장 접근 3. JS 클래스 4. 프라미스 객체 5. 일급 객체 6. 래퍼 객체 7. 콘솔 객체 8. 프로토타입 9. this 참조
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램,프로그래밍
      1.   프로그래밍 언어론
      2.   구조적 프로그래밍
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
            1. 프로그래밍 언어
        1.   C
        2.   C++
        3.   자바(Java)
        4.   자바스크립트
              1. JavaScript
              2. 기초 문법
          1.   JS 변수,타입
          2.   JS 연산자
          3.   JS 함수
          4.   JS 객체
            1.   1. JS 객체
                2. JS 객체의 생성 저장 접근
                3. JS 클래스
                4. 프라미스 객체
                5. 일급 객체
                6. 래퍼 객체
                7. 콘솔 객체
                8. 프로토타입
                9. this 참조
          5.   JS 배열
          6.   JS 활용
          7.   JS 웹문서 제어
        5.   PHP
        6.   파이썬
        7.   (기타 언어)
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌