Lodash - .extend() / .assign() と .merge() の違い 質問する

Lodash - .extend() / .assign() と .merge() の違い 質問する

の中にロダシュ図書館、誰かもっと良い説明をしてくれませんかマージそして拡張する/割り当てる

それは簡単な質問ですが、それでも答えはわかりません。

ベストアンサー1

extend仕組みは次のとおりですassign: ソース内の各プロパティの値をそのまま宛先にコピーします。プロパティ値自体がオブジェクトである場合、そのプロパティの再帰的なトラバースは行われません。オブジェクト全体がソースから取得され、宛先に設定されます。

仕組みは次のとおりですmerge。ソースの各プロパティについて、そのプロパティがオブジェクト自体であるかどうかを確認します。そうである場合は、再帰的に下に移動し、ソースから宛先に子オブジェクトのプロパティをマップしようとします。つまり、基本的には、ソースから宛先にオブジェクト階層をマージします。一方、extend/の場合はassign、ソースから宛先へのプロパティの単純な 1 レベルのコピーです。

これを非常に明確にするシンプルな JSBin を以下に示します。http://jsbin.com/uXaqIMa/2/edit?js、コンソール

次に、例に配列も含めた、より複雑なバージョンを示します。http://jsbin.com/uXaqIMa/1/edit?js、コンソール

おすすめ記事