JavaScript

[JS] JavaScript 객체(Object) 정리

Toproot 2021. 7. 22. 23:52
728x90
728x90

 

 

📒  JS 객체(Object)

 

  • prototype이 붙어있지 않은 메소드는 정적 메소드(정적 static)
  • Object.assign(대상객체, 하나 이상의 출처 객체..) : 열거할 수 있는 하나 이상의 출처 객체로부터 대상객체로 속성을 복사할 때 사용합니다.
  • 대상객체를 반환합니다. 두 객체를 병합해서 새로운 객체 반환. 출처객체 내용이 대상객체에 덮어씌워짐.
  • 출처객체 → 대상객체.
  • Object.assign(대상객체, 출처객체)

https://developer.mozilla.org/ko/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Object

 

Object | MDN

Object 생성자는 객체 래퍼(wrapper)를 생성합니다.

developer.mozilla.org

 

 

 

참조 데이터

const userAge = {
  // key: value 형태
  name: 'Heropy',
  age: 85
}
const userEmail = {
  name: 'Heropy',
  email: 'thesecon@gmail.com'
}

// Object에 바로 사용하는 정적 메소드
// assign(대상객체, 출처객체)
const target = Object.assign(userAge, userEmail)
console.log(target)
console.log(userAge)
// 같은 메모리 주소를 바라보고 있기 때문에 true
console.log(target === userAge)

const a = { k: 123 }
const b = { k: 123 }
// 생긴것은 같지만 false값으로 나옴.
// 각 객체는 고유 메모리 주소를 할당받음.
// 참조형 데이터 : 객체, 배열, 함수
console.log(a === b)

// 원본데이터는 손상되지 않도록 하고,
// 두 객체를 하나의 새로운 객체를 만드려면 첫 대상객체를 빈 객체 사용.
const target2 = Object.assign({}, userAge, userEmail)

 

 

 

keys()

const user = {
  name: 'Heropy',
  age: 85,
  email: 'theseond@gmail.com'
}

// 객체데이터의 키값을 반환.
const keys = Object.keys(user)
console.log(keys)
// ['name', 'age', 'email']

// 객체데이터의 인덱싱
console.log(user['email']) // theseond@gmail.com

// 콜백함수 3번 실행
const values = keys.map(key => user[key])
console.log(values)

 

 

 

 

 

728x90
728x90