let a = 'age';
const user = {
name:'Mike',
[a]:30,
[1+4]:5,
['안녕'+'하세요']:'hello'
}
객체에서 사용할 수 있는 메소드
Object.assign()
Object.keys()
Object.values()
Object.entries()
Object.fromEntries()
const user = {
name : 'Mike',
age : 30
}
const cloneUser = user; // 이렇게 하면 객체가 복사되는게 아니다.
# user에는 객체 자체가 들어있는 게 아니라 객체가 저장되어 있는 메모리 주소인 객체에 대한 참조값이 저장되므로
# clonUser를 만들어서 user를 넣으면 객체가 복사되며 들어가는게 아니라 참조값만 복사
cloneUser.name = 'Tom'; // 이렇게 하면 name값이 변경된다.
그래서 Object.assign()이 필요함.
빈 객체는 초기값, 두번째 매개변수부터 들어온 값이 초기값에 병합됨
{} + {name:'Mike', age:30} = {name:'Mike', age:30}
const newUser = Object.assign({},user);
newUser != user // 다르다.
첫 번쨰 인자가 빈 값이 아닌 경우
const newUser = Object.assign({gender:'Male'},user);
// {gender:'Male', name:'Mike', age:30} : 총 3개의 프로퍼티를 가지게 됨
병합을 하는데 키가 갖다면? 덮어쓰게 됨
// {name:'Mike', age:30}
const newUser = Object.assign({name:'Tom'},user); // user기준으로 덮어씌우게 됨.
두개 이상의 객체를 합쳐보자.
const user = {name : 'Mike'};
const info1 = {age:30};
const inof2 = {gender:'Male'};
const newUser = Object.assign({},info1,info2);
const user = {
name : 'Mike',
age : 30,
gender : 'male',
}
Object.keys(user);
["name","age","gender"]이 나옴
Object.values(user);
['Mike',30,'male']
Object.enteries(user); // 키/값 객체 --> 배열 반환
[
["name","Mike"],
["age", "30"],
["gender","male"]
]
Object.fromEnteries(); // 키&값 배열 --> 객체로 변환
{
name : 'Mike',
age : 30,
gender : 'male'
}
let n = 'name';
let a = 'age';
const user = {
[n] : 'Mike',
[a] : 30,
[1+4] : 5
};
console.log(user);
function makeObj(key,val){
return {
[key] : val
}
}
const obj = makeObj('나이',33);
console.log(obj);