남과 같이 해선 남 이상이 될 수 없다.

JavaScript

2021/06/03 자바스크립트

맨동 2021. 6. 3. 13:20
728x90

객체 (Object)

Object.assign()

Object.assign() 메소드는 열거할 수 있는 하나 이상의 출처 객체로부터 대상 객체로 속성을 복사할 때 사용합니다. 대상 객체를 반환합니다.

const target = { a: 1, b: 2 }
const source = { b: 4, c: 5 }

const returnedTarget = Object.assign(target, source)

console.log(target)
//{a: 1, b: 4, c: 5}
console.log(returnedTarget)
//{a: 1, b: 4, c: 5}
console.log(target === returnedTarget) 
//true

const a = { k: 123 }
const b = { k: 123 }
console.log(a === b)
//false

 

target 과 returnedTarget 는 같은 메모리를 참조하고 있기 때문에 비교했을때 true가 나오지만,

a와 b는 서로 다른 메모리를 참조하기 때문에 false가 나옵니다.

 

target이라는 원본 객체 데이터가 손상되는 것을 방지하려면 첫번째 인수를 비어 있는 객체를 넣어주면 됩니다.

const returnedTarget = Object.assign({},target, source)

 

Object.keys ()

 Object.keys()메서드는 지정된 객체의 고유 한 열거 가능한 속성 이름 배열을 반환 하며 일반 루프와 동일한 순서로 반복됩니다.

const user = {
  name: 'Dongit',
  age: 25,
  email: 'abcd1234@gmail.com'
}

const keys = Object.keys(user)
console.log(keys)
//["name", "age", "email"] 배열로 반환

console.log(user.name)
// Dongit
console.log(user['name'])
// Dongit

const values = keys.map(key => user[key])
console.log(values)
// ["Dongit", 25, "abcd1234@gmail.com"]

대괄호를 사용하여 해당하는 속성의 이름을 꺼내는 방법은 배열 메소드를 사용할 때 효과적 입니다.

728x90

'JavaScript' 카테고리의 다른 글

2021/06/06 자바스크립트  (0) 2021.06.06
2021/06/04 자바스크립트  (0) 2021.06.04
2021/05/31 -2 자바스크립트  (0) 2021.05.31
2021/05/31 자바스크립트  (0) 2021.05.31
2021/05/30 자바스크립트  (0) 2021.05.30