Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

Lodashライブラリの.extend()/ .assign()と.merge()の違い。


割り当て/拡張は、ソース内の各プロパティを取得し、その値をそのまま宛先にコピーします。プロパティ値自体がオブジェクトである場合、それらのプロパティを再帰的にトラバースすることはありません。これは、浅いコピー/クローン作成とも呼ばれます。オブジェクト全体がソースから取得され、宛先に設定されます。

Mergeはソース内の各プロパティを取得し、そのプロパティがオブジェクト自体であるかどうかを確認します。その後、再帰的にダウンし、子オブジェクトのプロパティをソースから宛先にマップしようとした場合。

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 } }

  1. C#と.Netの違い

    C#はプログラミング言語であり、.NETはフレームワークです。 .NETには、.NETFrameworkの仮想コンポーネントである共通言語ランタイム(CLR)があります。 .NETにはC#があるだけでなく、それを介してVB、F#などを操作できます。 C#は.NETの一部であり、次の機能があります- ブール条件 自動ガベージコレクション 標準ライブラリ アセンブリのバージョン管理 プロパティとイベント デリゲートとイベント管理 使いやすいジェネリック インデクサー 条件付きコンパイル シンプルなマルチスレッド LINQおよびLambda式 Windowsとの統合

  2. GoとJavaの違い。

    行く Goは手続き型プログラミング言語です。プログラムはパッケージを使用して組み立てられます。動的言語に似たパターンを採用する環境をサポートします。 Java Javaはオブジェクト指向プログラミング言語です。 Javaは静かで高速、信頼性が高く、安全です。最も広く使用されている言語でもあります。 GoとJavaの重要な違いは次のとおりです。 Sr。いいえ。 キー 移動 Java 1 タイプ Goは手続き型プログラミング言語であり、動的言語と同様のパターンをサポートしています。 Javaはオブジェクト指向プログラミング言語です。 2 クラスのサポート