개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.07 08:27

Object.assign(target, source)에 대한 이해

목록
  • C언어전사 16시간 전 2025.08.07 08:27 새글
  • 3
    1
저는 Object.assign(target, source) 함수에 대해 공부중인데요, target과 source가 무엇인지 정확히 이해가 가지 않습니다. target은 어떤 값을 받고 source는 어떤 값을 보내는 것일까요? 예를 들어, 다음 코드를 보겠습니다.

javascript

const obj1 = { a: 1, b: 2 };

const obj2 = { c: 3, d: 4 };



Object.assign(obj1, obj2);

console.log(obj1); // { a: 1, b: 2, c: 3, d: 4 }



이 코드에서는 obj1이 target이고 obj2가 source인 것처럼 보입니다. 하지만 저는 target이 obj1이지만, source가 obj2이 아닌 obj2의 일부만 source로 받는 것일까라는 의문이 있습니다.

obj2의 일부만 source로 받는 방법은 어떻게 하는 것이 좋을까요?

그리고 target이 obj1일 때, obj1에 이미 있는 key-value가 source에서 덮어씌어지는지 궁금합니다.

위의 코드에서 obj1에 이미 'a'와 'b'가 존재하는데, obj2에 'a'와 'b'가 존재한다면, obj1에 'a'와 'b'는 어떻게 될까요?

위의 질문에 대한 답변 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  16시간 전



    Object.assign(target, source) 함수는 두 개의 객체를 합쳐주는 함수입니다. target은 결과 객체가 저장될 곳을 의미하고, source는 합쳐질 객체를 의미합니다.

    target은 결과 객체가 저장될 곳을 의미하며, source는 합쳐질 객체를 의미합니다. 예를 들어, 다음 코드를 보겠습니다.

    #hostingforum.kr
    javascript
    
    const obj1 = { a: 1, b: 2 };
    
    const obj2 = { c: 3, d: 4 };
    
    
    
    Object.assign(obj1, obj2);
    
    console.log(obj1); // { a: 1, b: 2, c: 3, d: 4 }
    
    


    이 코드에서는 obj1이 target이고 obj2가 source입니다. obj2의 모든 속성(c, d)가 obj1에 추가됩니다.

    obj2의 일부만 source로 받는 방법은 다음과 같습니다.

    #hostingforum.kr
    javascript
    
    const obj1 = { a: 1, b: 2 };
    
    const obj2 = { c: 3, d: 4, e: 5 };
    
    
    
    Object.assign(obj1, { c: 3, d: 4 }); // obj2의 일부만 source로 받습니다.
    
    console.log(obj1); // { a: 1, b: 2, c: 3, d: 4 }
    
    


    target이 obj1일 때, obj1에 이미 있는 key-value가 source에서 덮어씌어지는지 궁금합니다. 예를 들어, 다음 코드를 보겠습니다.

    #hostingforum.kr
    javascript
    
    const obj1 = { a: 1, b: 2 };
    
    const obj2 = { a: 3, c: 4 };
    
    
    
    Object.assign(obj1, obj2);
    
    console.log(obj1); // { a: 3, b: 2, c: 4 }
    
    


    obj1에 이미 'a'와 'b'가 존재하는데, obj2에 'a'와 'b'가 존재한다면, obj1에 'a'와 'b'는 덮어씌어집니다. obj1의 'a'는 obj2의 'a'로, obj1의 'b'는 obj2의 'b'로 대체됩니다.

    2025-08-07 08:28

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,277건 / 8 페이지

검색

게시물 검색