: Object.
배열과 유사한 역할.
객체도 연관덴 데이터를 담기 위한 그릇이다.
배열 : 인덱스가 자동으로 있다. (0, 1, 2, ...)
객체 : 인덱스를 등 내가 원하는 문자로 지정 가능. (first, second, ...)
-> 연관배열, 맵, 딕셔너리
var grades = {'eunha': 10, 'dayeon': 10, 'momo': 100};
객체에서 인덱스는 eunha, dayeon, momo 가 된다.
// 위와 같음
var grades = {};
grades['eunha'] = 10;
grades['dayeon'] = 10;
grades['momo'] = 100;
// 위와 같음
var grades = new Object();
grades['eunha'] = 10;
grades['dayeon'] = 10;
grades['momo'] = 100;
key & value
배열 - 저장된 데이터들이 순서를 가지고 있다.
객체 - 순서가 없다. 키와 밸류만 있을 뿐이다.
key in grades
key in 객체명
-> 객체의 키들을 key에 담아 하나씩 모두 돈다.
var grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80};
for (key in grades) {
document.write("key : " + key + " value : " + grades[key] + "<br />");
}
// 위의 for문과 같다. key -> name (이름 변경)
for (var name in grades) {
document.write("key : " + name + " value : " + grades[name] + "<br />");
}
객체의 key를 가져올 때 for in문을 쓴다.
고로 배열에서도 쓸 수 있다.
배열에서 사용하면 key 가 인덱스가 되어 0, 1, 2, ... 이 된다.
객체 내의 value가 객체일 수도, 함수일 수도 있다.
this
: js의 약속된 변수. 이 함수가 속해있는 객체를 가리키는 변수
console.log(name, this.list[name])
-> , 를 이용하여 많은 것을 출력할 수 있다.
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();
// grades['show'](); 위와 같다.