ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JavaScript의 Object 객체
    개발언어/JavaScript 2022. 4. 2. 18:18

    정적인 객체 정의와 동적인 객체 정의

    정적인 객체정의

    객체지향을 지원하는 언어들은 Object라는 개념을 가지고있다. 그리고 Object는 class라는 것으로 먼저 그 객체에 대한 형식과 type을 정의한다. 그리고 그것을 실체화 함으로써, 객체라는 것이 만들어 진다.(즉, 정의를 하고 객체를 만든다.)

     

    동적인 객체 정의

    그러나 JacaScript는 그렇지 않다. 객체를 우선 만들고, 그 객체를 정의한다. protorype 시스템을 가지고 있는 것이다. 

     

    Object 객체의 Expand Object

    키를 기반으로 데이터를 저장해야 할 때

    var exam = new Object();

    느닷 없이 Object라고 하는 객체를 맨땅에 생성한다. 그리고 나니까 내가 원하는 속성이 존재하지 않는다.

     

    Expand Object

    exam.kor = 30; (이때, 속성이 만들어 진다.)
    exam.eng = 70;
    exam.math = 80;

    필요한 속성을 동적으로 정의 한다. 정적인 방식에서 미리 정의 하지 않은 속성을 사용할 수 없는 것과는 달리 JavaScript에서는 필요에 따라 동적으로 속성 정의가 가능하다.

     

    Object 객체 생성하기

    키를 이용한 데이터 관리 : Map

    var exam = new Object();

    exam["kor"] = 30;
    exam["eng"] = 70;
    exam["math"] = 80

    alert(exam["kor"]);

    JavaScript의 Object는 특이하게도, "."을 찍어서 속성을 만드는 것과 또 다르게 대괄호 사이에 문자열 값으로 끼워 넣을 수도 있다.

     

    그림 1

    좍측 형태로 쓸 수도 있고, 우측 형태로 쓸 수도 있다. 대입 할 때는 우측 형태로 하고, 꺼낼 때는 좌측 형태로 쓸 수도 있다. 때로는 섞어 쓸수도 있다. 둘다 사용이 가능하다면, 각각 형태에 대한 장단점을 파악해서 적재적소에 쓸 줄 알아야한다. 또 우선순위를 둬서 어떤 형태를 기본으로 쓸지도 정해야 한다.(보통 오른쪽과 같은 방식이 기본형이다.)

     

    차이점

    그림 2

    위 그림의 방식의 경우 대괄호 안에 들어가는 것이 이다. 즉, 안에 문자열이 들어간다. exam이 가지는 속성을 변수를 이용해서 꺼내야 할 때는 위 그림의 방식을 쓸 수 밖에 없다.

     

    그림 3

    그림 3과 같이 key라는 변수에 담아 놓은 문자열 값을 통해서 Object의 속성을 꺼 낼 수가 있다. 

    대괄호 방식이 아니면, 변수를 이용해서 Object의 속성 값을 꺼 낼 수 없다.

     

    그림 4

    JavaScript에서는Object가 Map형을 제공해 준다. 그러므로, JavaScript를 사용하면서 key값 hash값을 이용해서 값을 저장하는 공간이 필요하면, Object를 떠올리면 된다.

     

    선형으로 자료를 저자하고 싶다면 Array를 활용하면 된다.

     

    [출처-https://youtu.be/s9aTi2Ghgyg]

    '개발언어 > JavaScript' 카테고리의 다른 글

    Promise 개념부터 활용  (0) 2022.06.09
    비동기 처리의 시작 Callback 이해하기  (0) 2022.06.08
    JavaScript Closure  (0) 2022.04.03
    Eval함수로 JSON파싱 하기  (0) 2022.04.03
    JavaScript의 JSON  (0) 2022.04.02

    댓글

Designed by Tistory.