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};
병합의 경우 전개 연산자를 사용한다.