계산된 프로퍼티 (Computed property)
let a = 'age';
const user = {
name: 'jjw',
age: 20
};
JavaScript
복사
여기서, age라는 키 대신
const user = {
name: 'jjw',
[a]: 20
};
JavaScript
복사
이렇게 사용할 수 있다.
const user = {
[1 + 4]: 5,
["안녕"+"하세요"]: "Hello"
};
JavaScript
복사
이렇게 식 자체를 넣는 것도 가능하다.
객체 메소드(Object methods)
Object.assign() : 객체 복제
const user = {
name: 'jjw',
age: 20
};
// (X) 객체가 복사되는 것이 아니라 참조값만 복사된다.
const cloneUser = user;
cloneUser.name = 'Tom'; // clonseUser의 이름을 바꿨는데 user의 이름도 바뀐다.
// (O} 객체 복제, 첫번 째 인자는 초기값
const newUser = Object.assign({}, user); // == { } + {name: 'jjw', age: 20}
// newUser의 이름을 바꿔도 user는 변함이 없다.
newUser.name = 'Tom';
console.log(user.name); // 'jjw' - ( cloneUser로 안바꿨을 경우)
JavaScript
복사
병합할 때 키가 같다면 덮어쓰게 된다.
Tom을 jjw가 덮어썼다.
두 개 이상의 객체도 합칠 수 있다.
const user = {
name: 'jjw'
};
const info1 = {
age: 20
};
const info2 = {
gender: 'male'
};
Object.assign(user, info1, info2);
JavaScript
복사
Object.keys() : 키 배열 반환
const user = {
name: 'jjw',
age: 20,
gender: 'male'
};
Object.keys(user); // ["name", "age", "gender"]
JavaScript
복사
Object.values() : 값 배열 반환 (<--> Object.keys)
const user = {
name: 'jjw',
age: 20,
gender: 'male'
};
Object.values(user); // ["jjw", 20, "male"]
JavaScript
복사
Object.entries() : 키/값 배열 반환
const user = {
name: 'jjw',
age: 20,
gender: 'male'
};
Object.entries(user); // [ ["name", "jjw"], ["age", 20], ["gender", "male"] ]
JavaScript
복사
Object.fromEntries() : 키/값 배열을 객체로 (<--> Object.entries)
const arr = [
["name", "jjw"],
["age", 20],
["gender", "male"]
];
Object.fromEntries(arr); // {name: 'jjw', age: 20, gender: 'male'}
JavaScript
복사