객체

객체(Object)

지금까지 살펴본 배열은 아이템에 대한 식별자로 숫자를 사용했다. 데이터가 추가되면 배열 전체에서 중복되지 않는 인덱스가 자동으로 만들어져서 추가된 데이터에 대한 식별자가 된다. 이 인덱스를 이용해서 데이터를 가져오게 되는 것이다. 만약 인덱스로 문자를 사용하고 싶다면 객체(dictionary)를 사용해야 한다. 다른 언어에서는 연관배열(associative array) 또는 맵( map), 딕셔너리(Dictionary)라는 데이터 타입이 객체에 해당한다.

객체의 생성

배열

객체

[ ]

{ }

var grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80};

//  egoing은 key가 되고, 10은 value가 된다.


var grades = {};       // 비여있는 객
grades['egoing'] = 10;  
grades['k8805'] = 6;
grades['sorialgi'] = 80;


var grades = new Object();           // Object(); = {}; 같은 의
grades['egoing'] = 10;
grades['k8805'] = 6;
grades['sorialgi'] = 80;


var grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80};
alert(grades['sorialgi']);

// 80

객체와 반복문의 조우

배열는 저장한 데이터의 순서를 가지고 있다. 객체는 서가 없고 key, vlaue 를 가지고 있다.

var grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80};
for(key in grades) {
    document.write("key : "+key+" value : "+grades[key]+"<br />");
}

/*
key :   egoing value : 10
key :   k8805 value : 6
key :   sorialgi value : 80
*/

for 문은 in 뒤에 따라오는 배열의 key 값을 in 앞의 변수 name에 담아서 반복문을 실행한다. 반복문이 실행될 때 변수 key의 값으로 egoing, k8805, sorialgi가 순차적으로 할당되기 때문에 grades[key]를 통해서 객체의 값을 알아낼 수 있다.

객체 지향 프로그래밍

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

var grades = {
    'list': {'egoing': 10, 'k8805': 6, 'sorialgi': 80},
    'show' : function(){
        for(var name in this.list){
            document.write(name+':'+this.list[name]+"<br />");
        }
    }
};
grades.show();

// this 는 약속되어 있는 변수이며 함수가 속해있는 객체를 가르키는 변수이다.
/*서로 연관되어 있는 값과 데이터 처리를 하나에 그릇안에 그룹핑하는 기법을 
객체 지향 프로그래밍이라고 한다*/

이것은 자바스크립트를 이용한 객체 지향 프로그래밍 기법의 핵심이 되는 성질로 취지에 따라서 로직을 객체에 그룹핑해서 객체라는 부품을 조립해서 소프트웨어라는 완제품을 만들 수 있게 해준다. 객체 지향에 대해서는 뒤에서 자세히 살펴본다.

Last updated

Was this helpful?