const user = {
name : "Mike",
age : 30,
}
// const cloneUser = user; (x)
let cloneUser = Object.assign({}, user);
console.log(cloneUser);
/*
{
name : 'Mike',
age : 30
}
*/
// cloneUser의 name을 변경해도 기존 user.name은 바뀌지 않음
cloneUser.name = "Jane";
console.log(user);
console.log(cloneUser);
user 변수에는 객체 자체가 아니라, 객체가 저장되어 있는 메모리 주소인 객체에 대한 참조값만 존재함. cloneUser에는 참조값만 복사됨. 하나의 객체를 두 변수가 공유하는 것.
동일하게 복제하기 위해서는
object.assign(초기값, 복사할 객체)
사용해야함.
// Object.assign() 초기값 설정
const user = {
name : "Mike",
age : 30,
}
let user2 = Object.assign({gender: 'm'}, user);
console.log(user2);
/*
const user = {
gender : 'm',
name : "Mike",
age : 30,
}
*/
const user = {
name : 'Mike',
}
const info1 = {
age : 30,
}
const info2 = {
gender : 'm',
}
let user2 = Object.assign(user, info1, info2);
// user에 info1 과 info2 객체를 병합함.
console.log(user2);
/*
{
age: 30
gender: "m"
name: "Mike"
}
*/
const user = {
name : 'Mike',
age : 30,
gender: 'm',
}
Object.keys(user);
// ['name', 'age', 'gender']
const user = {
name : 'Mike',
age : 30,
gender: 'm',
}
Object.values(user);
// ['Mike', 30, 'm']
const user = {
name : 'Mike',
age : 30,
gender: 'm',
}
Object.entries(user);
/*
[
['name', 'Mike']
['age', 30]
['gender', 'm']
]
*/
const arr = [
['name', 'Mike'],
['age', 30],
['gender', 'm']
]
Object.fromEntries(arr);
// {name: 'Mike', age: 30, gender: 'm'}
let a = 'age';
const use = {
name : 'Mike',
[a] : 30, // age : 30
}
const user = {
[1+4] : 5,
["안녕"+'하세요'] : "hello",
}
console.log(user);
/*
const user = {
[1+4] : 5,
["안녕"+'하세요'] : "hello",
}
console.log(user);
*/
어떤 키와 값이 들어올지 모르는 객체를 만들 때 사용 가능.
function makeObj(key, val){
return {
[key]: val,
}
}
const obj = makeObj('나이', 33);
console.log(obj);
// { "나이": 33 }