[JS] 객체, 객체 메소드

GDORI·2024년 8월 9일
0

JavaScript

목록 보기
7/28

객체

let human = {
 	name : "카타리나",
    age : 29,
  	gender : "여성"
};

전에도 한번 언급했었지만 객체의 기본틀은 다음과
같고 키-밸류 로 이루어져 있다.

생성자 함수이용 객체 생성

function Human (name, age, gender){
  this.name = name;
  this.age = age;
  this.gender = gender;
}

let a = new Human("카타리나", 29, "여성");
let b = new Human("카리나", 23, "여성");

다음과 같은 경우에는 생성자 함수를 이용하여 a,b 객체를 생성한 경우이다.
생성자 함수를 이용하면 객체를 일괄적으로 생성 가능하다.

객체 속성 접근

let human = {
 	name : "카타리나",
    age : 29,
  	gender : "여성"
};

console.log(human.name); // 카타리나 출력

객체 속성에 접근할때는 객체이름.속성명 을 쳐주면 가져올 수 있다.

객체 메소드

  • Object.keys()
let human = {
 	name : "카타리나",
    age : 29,
  	gender : "여성"
};

console.log(Object.keys(human)); // ["name", "age", "gender" ] 출력

Object.keys 메소드를 이용하면 객체의 속성 이름을 배열로 반환해준다.

  • Object.values()
let human = {
 	name : "카타리나",
    age : 29,
  	gender : "여성"
};

console.log(Object.values(human)); // ["name", "age", "gender" ] 출력

Object.values 메소드를 이용하면 객체의 속성 값을 배열로 반환해준다.

  • Object.assign()
let human = {
 	name : "카타리나",
    age : 29,
  	gender : "여성"
};

let newHuman = Object.assign({},human,{name:"카리나"});

console.log(newHuman.name); // 카리나 출력

Object.assign 메소드를 이용하면 기존 객체를 복제하여 만들 수 있고 오버라이드 하여 수정한 속성을 부여할 수 있다.

  • 객체 비교
function Human (name, age, gender){
  this.name = name;
  this.age = age;
  this.gender = gender;
}

let a = new Human("카타리나", 29, "여성");
let b = new Human("카리나", 23, "여성");

console.log(JSON.stringify(a) === JSON.stringify(b)); // true 출력

객체는 비교연산자 === 를 사용할 수 없다.
따라서 JSON.stringify() 함수를 이용하여 문자열로 변환시킨 후 비교한다.

  • 객체 병합
let human1 = {
 	name : "카타리나",
    age : 29
};
let human2 = {
  	gender : "여성"
};

let newHuman = {...human1, ...human2};

병합의 경우 전개 연산자를 사용한다.

profile
하루 최소 1시간이라도 공부하자..

0개의 댓글