1つのオブジェクトに複数のオブジェクトを結合する方法

、Object.assign()

 Object.assign()メソッドは、値がターゲット・オブジェクトに1つ以上のソースオブジェクトからコピーされたすべての属性を列挙するために使用されます。これは、ターゲットオブジェクトに戻ります。そして、ソースオブジェクトが変更されます。

  CONSTターゲット= {1、B:2}。
  CONSTソース= {B:4、C 5}。

  CONST returnedTarget = Object.assign(ターゲット、ソース)

  console.log(ターゲット)
  //期待される出力:オブジェクト{1、B:4、C 5}

  console.log(returnedTarget)。
  //期待される出力:オブジェクト{1、B:4、C 5}

同じキーを持つターゲットオブジェクトのプロパティ場合、属性はソースオブジェクトのプロパティで覆われています。ソースオブジェクトのプロパティは、同様にソースオブジェクトのプロパティの正面の後ろにカバーします。複数のオブジェクトがマージされるサポートし、ターゲット・オブジェクトを変更しない場合、ターゲットオブジェクトは、{}空で変更することができます

例如:CONST returnedTarget = Object.assign({} ソース、ソース)。

Object.assign この方法は、ソースのみをコピーし、オブジェクト自体は、ターゲット・オブジェクトの属性を列挙することができます。この方法は、ソースオブジェクトを使用する[[Get]]と、ターゲット・オブジェクトは[[Set]]、それが関連するゲッターとセッターを呼び出します。したがって、属性だけではなく、コピーを割り当てたり、新しい属性を定義しています。マージソースがゲッターが含まれている場合、プロトタイプに組み込まれた新しいプロパティのために、それは適さない可能性があります。プロトタイプに(の列挙を含んでいてもよい)属性を定義するために使用されるべきであるObject.getOwnPropertyDescriptor()Object.defineProperty() 。

StringTypeと  Symbol type属性がコピーされます。

例えば、エラーの場合は、プロパティが書き込み可能、原因ではない場合TypeErrorにエラーをスローする前に、任意のプロパティを追加する場合、変更することができ、target件名を。

、注意Object.assign されていないものでsource、目標値  null や  undefined 間違った時間を投げます。

 

ループスルーの第二に、使用

上のこの小さなトラブル

  VAR OBJ1 = {名: '张三'}。
  VAR OBJ2 = {年齢:18}。
  (OBJ2でVARキー){ための
   IF(obj2.hasOwnProperty(キー)=== TRUE){
     OBJ1 [キー] = OBJ2 [キー]。
   }
  }
  にconsole.log(OBJ1)。

おすすめ

転載: www.cnblogs.com/chase-star/p/11319075.html