ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 - 객체
    JavaScript/기본 2020. 2. 25. 22:30

     

     

    오늘은 객체에 대해서 알아보자!

     

    일단 배열과 객체는 비슷하면서도 다른 것을 알 수 있다.

     

    지금까지 살펴본 배열은 값에 대한 식별자로 숫자를 사용했다.

    데이터를 추가하면 배열 전체에서 중복되지 않는 인덱스가 자동으로 만들어져서 추가된 데이터에 대한 식별자가 된다. 

    우리는 이 인텍스를 이용해서 값을 가져오게 되는 것이다.

     

    만약, 인덱스로 숫자가 아닌 문자를 사용하고 싶다면?

    객체(dictionary)를 사용해야 한다.

     

    그렇다면 객체는 어떻게 생성할까?

    var word = {'a': 10, 'b': 20, 'c': 30}; // 객체 생성

    여기서 'a'는 key를 뜻하고, 10은 value를 뜻한다.

     

     

    또 객체를 만드는 다른 방법이 있다.

    var word = {};
    word['a'] = 10;
    word['b'] = 20;
    word['c'] = 30; // 객체를 생성하는 다른 방법1
    var word = new Object(); // new Object()는 { }와 같다.
    word['a'] = 10;
    word['b'] = 20;
    word['c'] = 30; // 객체를 생성하는 다른 방법2

     

    자 객체를 만들었으니 이제는 객체에서 필요한 값을 꺼내보자.

    객체의 속성 접근은 "객체 이름['key']"의 형식으로 접근한다.

    var word = {'a': 10, 'b': 20, 'c': 30};
    alert(word['a']); // 결과 : 10이 출력
    alert(word['b']); // 결과 : 20이 출력
    alert(word['c']); // 결과 : 30이 출력

    "객체 이름. key"의 방식으로도 접근한다.

    var word = {'a': 10, 'b': 20, 'c': 30};
    alert(word.a); // 결과 : 10이 출력
    alert(word.b); // 결과 : 20이 출력
    alert(word.c); // 결과 : 30이 출력

    또 객체를 이용해서 저장된 데이터를 기준으로 반복 작업을 하는 방법이 있다.

    var word = {'a': 10, 'b': 20, 'c': 30};
    for(key in word){
    	document.write("key : "+key+" value : "+word[key]+"<br />");
    }
    // 결과
    /*
    key :   a value : 10
    key :   b value : 20
    key :   c value : 30
    */

    for 문은 in 뒤에 따라오는 배열의 key 값을 in 앞의 변수 key에 담아서 반복문을 실행한다.

    반복문이 실행될 때 변수 key의 값으로 a, b, c가 순차적으로 할당되기 때문에 word[key]를 통해서 객체의 값을 알아낼 수 있다.

     

    또, 객체에는 객체를 담을수도 있고, 함수도 담을 수 있다. 

    var word = {
        'list': {'a': 10, 'b': 20, 'c': 30},
        'show' : function(){
            for(var name in this.list){
                document.write(name+':'+this.list[name]+"<br />");
            }
        }
    };
    word.show();

    객체 word의 key값 'list'의 value값으로 객체 {'a': 10, 'b': 20, 'c': 30}를 담을 수 있고,

    객체 word의 key값 'show'의 value값으로 함수도 담울 수 있는 것을 확인할 수 있다.

     

    여기서 this는 객체를 담고 있는 객체 이름을 뜻한다.

    this는 나중에 깊게 다뤄보자.. 

    'JavaScript > 기본' 카테고리의 다른 글

    자바스크립트 - String타입  (0) 2020.04.22
    자바스크립트 - var, let, const 차이  (0) 2020.02.27
    자바스크립트 - 배열  (0) 2020.02.25
    자바스크립트 - 함수  (0) 2020.02.24
    자바스크립트 - 반복문  (0) 2020.02.24

    댓글

Designed by Tistory.