[ES6] JavaScript의 Object.Assign

Object.sign()은 소스 객체의 열거 가능한 모든 속성을 대상 객체에 복사하는 JavaScript의 메서드입니다. 이 메소드는 대상 객체를 반환합니다.

기본 사용법은 다음과 같습니다.

let target = Object.assign({
    
    }, source);

이 예에서는 원본 개체의 열거 가능한 모든 속성이 대상 개체에 복사됩니다.

Object.sign()은 얕은 복사본(shallow copy)이라는 점에 유의해야 합니다. 즉, 소스 개체의 값이 개체 참조인 경우 참조된 개체는 복사하지 않고 참조만 복사합니다.

예를 들어:

let obj1 = {
    
     a: 1 };
let obj2 = {
    
     b: 2 };
let obj3 = Object.assign({
    
    }, obj1, obj2);
console.log(obj3); // { a: 1, b: 2 }
console.log(obj3 === obj1); // false
console.log(obj3.a === obj1.a); // true

이 예에서는 obj3이 obj1 및 obj2에서 복사되었지만 obj3.a 및 obj1.a는 동일한 참조이며 동일한 객체를 가리킵니다. 따라서 전체 복사가 필요한 경우 재귀 복사나 Lodash의 _.cloneDeep() 함수와 같은 라이브러리 사용과 같은 다른 방법을 사용해야 할 수도 있습니다.

Guess you like

Origin blog.csdn.net/qq_22744093/article/details/132620946