1) Object.assign()
: 객체 복제
이렇게 = 으로 할당을 할 경우 주소값을 참조하게 되어 같은 곳을 가리키게됨
따라서 cloneUser 가 name이 바뀔경우 user도 함께 바뀌게됨
const newUser = Object.assin({},user); // (target, 붙여줄 객체 )
new User.name = 'Tom';
console.log(user.name); //'Mike'
병합을 하는데 key가 동일할 경우 병합되는 것으로 덮어씌워짐
예시 1 )
const user = {
name : 'Mike',
}
const info1 = {
age : 30,
}
const info2 = {
gender : 'male',
}
Object.assign(user,info1,info2);
console.log(user)
user객체에는 name, age, gender의 프로퍼티가 포함되어짐.
예시 2 )
const user4 = {}; // target
Object.assign(user4, user); //(target,source)
// target : user4 , source : user
console.log(user4);
target은 user4 / user4에 user가 병합되어 user4가 변경됨
예시3)
//Object.assign(dest, [obj1, obj2, obj3...])
const user4 = Object.assign({}, user);
// target : {}: 텅텅비어진 오브젝트 , source : user
console.log(user4);
빈 객체가 target일 경우는 만들어진 결과를 받을 변수가 있어야함.
예시 4) 여러개 source 전달
// another example
const fruit1 = { color: 'red' };
const fruit2 = { color: 'blue', size: 'big' };
const mixed = Object.assign({}, fruit1, fruit2);
console.log(mixed.color); // blue
console.log(mixed.size); // big
2) Object.keys()
: 키 배열로 반환
3) Object.values()
: 값 배열로 반환
4) Object.entries()
: 키/값 배열로 반환
const user = {
name : 'Mike',
age : 30,
gender : 'male',
}
console.log(Object.keys(user)) // ["name", "age", "gender"]
console.log(Object.values(user)) // ["Mike", 30, "male"]
console.log(Object.entries(user))
//[["name", "Mike"], ["age", 30], ["gender", "male"]]
5) Object.fromEntries()
: 키/값 배열→ 객체로
const arr = [["name", "Mike"], ["age", 30], ["gender", "male"]];
const user = Object.fromEntries(arr);
console.log(user);
배열을 객체의 형태로 변환시켜줌.