const userAge = {
// Key: value
name: 'hyerin',
age: 85
}
const userEmail = {
name: 'hyerin',
email: 'abcde123@gmail.com'
}
const target = Object.assign(userAge, userEmail)
//첫번째인수 userAge: 대상객체, 두번째인수 userEmail: 출처객체
console.log(target) //{name: "hyerin", age: 85, email: "abcde123@gmail.com"}
console.log(userAge) //{name: "hyerin", age: 85, email: "abcde123@gmail.com"}
console.log(target === userAge) //true
//target과 userAge는 같은 데이터, 출처객체 source에서 대상객체 target으로 속성의 값을 복사해서 집어넣는데 그 객체가 반환됨
const a = { k: 123 }
const b = { k: 123 }
console.log(a === b) //false
const target = Object.assign({}, userAge, userEmail)
//userAge, userEmail: 출처객체(sources)
console.log(target) //{name: "hyerin", age: 85, email: "abcde123@gmail.com"}
console.log(userAge) //{name: "hyerin", age: 85}
console.log(target === userAge) //false
또는
const target = Object.assign({}, userAge)
console.log(target) //{name: "hyerin", age: 85}
console.log(userAge) //{name: "hyerin", age: 85}
console.log(target === userAge) //false
// userAge의 원본데이터를 손상하지 않고 그것을 새로운 객체데이터로 속성을 옮겨서 하나의 복사본을 만듦, 따라서 내용은 같지만 userAge 바라보고있는 메모리 주소가 따로 있고 그것이 복사돼서 새로운 메모리주소로 할당 되었으므로 서로 다름
const user = {
// Key: value
name: 'hyerin',
age: 85,
email: 'abcde123@gmail.com'
}
const keys = Object.keys(user)
console.log(keys) //(3) ["name", "age", "email"]
console.log(user['email']) //abcde123@gmail.com, user부분의 email property 값을 내놔라
console.log(user.email) //abcde123@gmail.com
활용
const values = keys.map(key => user[key])
console.log(values) //(3) ["hyerin", 85, "abcde123@gmail.com"]