[JS] 객체 - Object

Im-possible·2025년 4월 3일

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

0개의 댓글