let a = 'age';
const user = {
name : "Suri",
[a] : 4 // [a]라고 쓰면 a에 할당된 age가 들어감
}
const user2 = {
[1+4] : 5
["안녕"+"하세요"] : "Hello"
}
user2
{5:5, 안녕하세요:"Hello"} // 식을 넣는 것도 가능
객체를
const cloneUser = user
라고 복사했을때, cloneUser의 값을 변경하면 원본의 값도 바뀐다. 복사맞아??
const newUser = Object.assign({}, user)
이렇게 복사하면 빈객체가 user를 병합하므로, 새로운 객체가 되어 값을 변경해도 원본이 유지된다.
const newUser = Object.assign({ gender:'male' }, user)
라고 복사하면 성별값이 있는 객체에 user가 복사된다. 3개의 프로퍼티를 가진 객체가 생긴다.
const user = {
name:"Suri"
}
const info1 = {
age:4
}
const info2 = {
gender:'female'
}
Object.assign(user, info1, info2) // 맨 앞의 user중심으로 하나의 객체로 합쳐진다.
const user = {
name:'Suri',
age:4,
gender:'female'
}
Object.key(user) // [name, age, gender]
Object.values(user) // ['Suri', 4, 'female']
Object.entries(user) // ["name", "Suri"], ["age",4], ["gender","female"]
const arr =
[
["name", "Suri"],
["age",4],
["gender","female"]
]
Object.fromEntries(arr) // { name:'Suri', age:4, gender:'female'} 배열을 객체로 반환
function makeObj(key, val){
return{
[key]:val,
}
}
const obj = makeObj("나이", 33) // {나이 : 33}
++ 얕은복사 깊은복사와 스프레드 연산자를 배웠었는데 그것과 연관지어 생각하면 좋을 듯!