본문 바로가기
웹/JavaScript

JS Object.assign() 객체 복사, spread operator( ...) 차이점

by void pattern 2021. 1. 20.

Object.assign (ECMAScripy 2015)

  • 얕은 복사(shallow copy)로 두 오브젝트를 병합할 수 있다.
  • 정적 메소드로 인수(argument)로 받은 객체들의 모든 열거 가능한 속성(property)을 대상 객체에 복사한다.
  • 첫 번째로 들어오는 인자(argument)로 들어오는 객체에 두 번째 인자로 들어오는 객체의 프로퍼티들을 차례대로 덮어쓰기하여 반환하는 메소드이다.
  • 출처값이 객체에 대한 참조인 경우 참조값만 복사한다.

 

구문

Object.assign(target, ...sources)

* @param target 복사 할 대상 개체

* @param source 속성을 복사 할 원본 개체

 

 

spread operator와 object.assign 차이점

//spread operator
const a = { name: 'jun' };
const b = { ...a, age: 20 };
console.log(a === b)	//false


//object assign
const a2 = { name: 'jun' };
const b2 = Object.assign(a2, { age: 27 });
console.log(a2 === b2)	//true

Object.assign을 사용하면 기존 객체를 '변경' 있다.

' > JavaScript' 카테고리의 다른 글

자바스크립트 변수, 상수, 불변값, 불변성  (0) 2022.11.13
ES6. setPrototypeOf  (0) 2021.01.21
ES6. Class 클래스  (0) 2021.01.19
ES6. rest parameter, spread operator 차이  (0) 2021.01.18
ES6. 화살표 함수 (Arrow Function)  (0) 2021.01.17

댓글