Object
- 연관있는 데이터를 하나의 객체로 만들어서 데이터 관리
- 객체(Object): 속성(데이터)와 기능(그 데이터 주체가 하는 일들)을 모은 단위
- 객체의 속성과 기능에 접근할 때는 dot 연산자(객체.속성)을 이용하거나 ['속성명'] 표기(객체['속성명'] 사용
// 몰라핑 회원의 속성(객체, Object)
const user1 = new Object();
user1.userName = '이00';
user1.userNo = 3;
user1.userGender = 'male';
user1.userLevel = 'diamond'
user1.userPassword = '1234';
user1.userAge = '24';
user1.userEmail = 'asdfg@gmail.com';
// 호정핑 회원의 속성(객체, Object)
const user2 = new Object();
user2.userName = '김00';
user2.userNo = 4;
user2.userGender = 'male';
user2.userLevel = 'gold'
user2.userPassword = '1234';
user2.userAge = '30';
user2.userEmail = 'qwert@gmail.com';
JSON 표기법
const foo = {
name: '김00',
age: 20,
job: '학생',
married: true
};
객체 내부에 함수 생성
const score = {
userName: '박00',
kor: 100,
eng: 90,
math: 85,
sum: function(){ // 총점 반환
// this = score, 메서드 내부에서 this가 사용될 때 this는 메서드를 가진 객체를 가리킴
// 객체의 메서드가 자신의 속성을 접근할 때 this 사용
// this, score 둘 다 동일하게 사용 가능
// return score.kor + score.eng + score.math;
return this.kor + this.eng + this.math;
},
avg: function(){ // 평균 반환
return this.sum() / 3;
}
};
console.log(score.kor, score.eng, score['math'])
console.log('총점', score.sum()); // 함수 호출
console.log('평균', score.avg());
객체 속성 관리
const foo = {
name: "김00",
mainJob: "magician"
};
객체 속성 읽기
- 정의되지 않은 속성은 undefined로 출력
console.log(foo.name, foo["mainJob"], foo.subJob);
// 김00 magician undefined 출력
객체 속성 갱신
foo.mainJob = "fairy";
console.log(foo.name, foo["mainJob"], foo.subJob);
// 출력 결과: 김00 fairy undefined
객체 속성 동적 생성
foo.subJob = "celeb";
console.log(foo.name, foo["mainJob"], foo.subJob);
// 출력 결과: 김00 fairy celeb
객체 속성 삭제
delete foo.mainJob;
console.log(foo.name, foo["mainJob"], foo.subJob);
// 출력 결과: 푸푸핑 undefined celeb
객체의 모든 속성 읽기 (for-in)
for (let prop in foo) {
console.log(prop, foo[prop]);
}
// 출력 결과: name 푸푸핑
subJob celeb
// 속성명 출력
for (let prop in foo) {
console.log(prop);
}
// 출력 결과: name
subJob
// 속성값만 출력
for (let prop in foo) {
console.log(foo[prop]);
}
// 출력 결과: 푸푸핑
celeb