Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Lodash 라이브러리의 .extend() / .assign() 및 .merge()의 차이점.

<시간/>

assign/extend는 소스의 각 속성을 가져오고 해당 값을 있는 그대로 대상에 복사합니다. 속성 값 자체가 개체인 경우 속성의 재귀 순회가 없습니다. 이것을 얕은 복사/복제라고도 합니다. 전체 개체는 소스에서 가져와 대상으로 설정됩니다.

병합은 소스의 각 속성을 가져와 해당 속성이 개체 자체인지 확인합니다. 그런 다음 재귀적으로 다운되고 소스에서 대상으로 하위 개체 속성을 매핑하려고 시도하는 경우

예시

let _ = require('lodash');
let destination = {
   a: {
      b: 1,
      c: 2
   },
};
let source = {
   a: {
      d: 2,
      c: 3
   },
};
console.log(_.merge(destination, source));
console.log(_.extend(destination, source));

출력

이것은 출력을 줄 것입니다 -

{ a: { b: 1, c: 3, d: 2 } }
{ a: { d: 2, c: 3 } }