이번에는 Object 클래스에서 사용 가능한 메소드들에 대해서 알아보도록 하겠다.

Object.assign( )

한개 이상의 Source(출처) 객체로부터 Target(대상) 객체로 속성을 순차적으로 복사, Target 객체를 반환.

const target = { a: 1, b: 2 }
const source1 = { b: 3, c: 4 }
const source2 = { c: 5, d: 6 }

const result = Obect.assign(target, source1, source2)
// .assign 메소드의 앞부분부터 차례대로 target 객체, source객체들을 순서로 넣어야 함.
// source1 객체로부터 순차적으로 target 객체로 복사하여 덮어 씀. 

console.log(result)  // { a: 1, b: 3, c: 5, d: 6}
console.log(target)  // { a: 1, b: 3, c: 5, d: 6}
// 이때, 맨 앞자리의 target 객체는 원본 속성이 변경됨.

위처럼 이미 만들어진 객체의 데이터가 변경되는것을 원치 않는다면, 아래의 방법을 사용할 수 있다.

/* target, source1, source2는 위와 동일 */

const result = Obect.assign({}, target, source1, source2)
// 대상 객체를 작성하는 0번째 요소의 자리에 빈 객체를 넣음.
// 1번째 요소부터는 source 객체에 해당되어 데이터가 변경되지 않음.

console.log(result)  // { a: 1, b: 3, c: 5, d: 6}
console.log(target)  // { a: 1, b: 2 }

위의 경우 아래의 전개연산자 문법을 통해서도 같은 결과를 출력할 수도 있다.

/* target, source1, source2는 위와 동일 */

const result = { // 각각 객체들의 요소를 대입 (중복되는 요소들은 덮어 씀.)
	...target,
  	...source1,
  	...source2
}

console.log(result)  // { a: 1, b: 3, c: 5, d: 6}
console.log(target)  // { a: 1, b: 2 }


object.keys( )

주어진 객체의 속성 이름을 나열한 배열을 반환.

const user = {
  name: 'Park',
  age: '20',
  isValid: true
}

console.log(Object.keys(user))  // ['name', 'age', 'isValid'] 

object.values( )

어진 객체의 속성값을 나열한 배열을 반환.

const user = {
  name: 'Park',
  age: '20',
  isValid: true
}

console.log(Object.values(user))  // ['Park', '20', true]

Object.entries( )

주어진 객체의 각 속성 + 값으로 배열을 요소로 추가한 2차원 배열을 반환.

const user = {
  name: 'Park',
  age: '20',
  isValid: true
}

console.log(object.entries(user))
/*
0: ['name', 'Park']
1: ['age', '20']
2: ['isValid', 'true']
	length: 3
*/

for(const [key, value] of Object.entries(user)){
  console.log(key, value)
}
/*
name Park
age 20
isValid isValid
*/

profile
시작은 미약하지만, 그 끝은 창대하리라

0개의 댓글