Object.assign()メソッドの詳細

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

文法

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

パラメータ:

ターゲット

聴衆

ソース

ソースオブジェクト

 

返却値

聴衆

説明:

同じキーを持つターゲットオブジェクトのプロパティ場合、属性はソースオブジェクトのプロパティで覆われています。ソースオブジェクトのプロパティは、同様にソースオブジェクトのプロパティの正面の後ろにカバーします。

文字列型とプロパティのシンボルの種類がコピーされます。

エラーの場合には、例えば、プロパティは書き込めない場合、TypeError例外を引き起こす可能性があります任意のエラーが発生する前にプロパティを追加する場合は、ターゲットオブジェクトを変更することができます。

なお、Object.assignスキップ値がnullであるか、ないソースオブジェクトが定義されていません。

例:

1.戻り値は、対象物である戻り値は、対象物である、戻り値は、ターゲットオーディエンスです!

VAR OBJ1 = { 
    名: 'ジャック' 
    年齢: 25 
} 

VAR OBJ2 = { 
    名: 'カレー' 
} 
VAR OBJ3 = { 
    年齢: 30 
} 

Object.assign(OBJ1、OBJ2、OBJ3)。

// {名: 'カレー'、年齢:30} 
にconsole.log(OBJ1)。

したがって、Object.assign()が修正されるべき対象物です。

2.コピーオブジェクト

VAR OBJ1 = {  1 
    B: 2 
    C: 'USA' 
} 
targetObjは = {};
VaRの目標= Object.assign(targetObjは、OBJ1)。

// {:1、B:2、C 'USA'} 
にconsole.log(targetObjは)
 //  
にconsole.log(targetObjは===ターゲット)

したがって、Object.assign()リターンは、実際に対象物(targetObjは)です。

なお、Object.assign()オブジェクト、浅いコピーレベル属性の後の最初のレベル深いコピーの属性をコピーします。

換言すれば、ソース・オブジェクトのプロパティのプロパティ値が基準である場合、単にこの参照をコピー。

VAR OBJ1 = {  1 
    B: 2 
    C: 'USA' 
} 

VAR targetObjは= Object.assign({}、OBJ1)。
// {:1、B:2、C 'USA'} 
にconsole.log(targetObjは)

obj1.a = 4 
console.log( '--------------------' );
// {:1、B:2、C 'USA'} 
にconsole.log(targetObjは)
 // {:4、B:2、C 'USA'} 
にconsole.log(OBJ1)

この場合、ソース・オブジェクトのプロパティ値は、ターゲット・オブジェクトがコピー属性値ディープコピーに属する基本データタイプ(数値、文字列)です。

VAR OBJ1 = { 
    名:{最初: 'Stenphen'、第二'ジャック' } 
} 

VAR targetObjは= Object.assign({}、OBJ1)。
// {名:{最初'Stenphen'、第二'ジャック'}} 
にconsole.log(targetObjは)

obj1.name.first = 'qinney' 
console.log( '--------------' // {名:{第一:第二'qinney'、 'ジャック'}} 
にconsole.log(OBJ1)
 // {名前:{最初'qinney'、第二'ジャック'}} 
にconsole.log(targetObjは)

ソースオブジェクトの属性値が基準タイプ、ターゲットオブジェクト参照の唯一のコピーである、浅いコピーです。

3.オブジェクトをマージ

VAR OBJ1 = {1 }。
VAR OBJ2 = {B:2 }。
VAR OBJ3 = {C:3 }。

VAR targetObjは= Object.assign({}、OBJ1、OBJ2、OBJ3)。
// {:1、B:2、C:3} 
にconsole.log(targetObjは)

4.オブジェクトを合わせ同じ特性を有します

VAR OBJ1 = {1、B:6、C:100 }。
VAR OBJ2 = {B:2 }。
VAR OBJ3 = {C:5 }。

VAR targetObjは= Object.assign({}、OBJ1、OBJ2、OBJ3)。
// {:1、B:2、C:5} 
にconsole.log(targetObjは)

同じ属性は、属性値は、後で説明します。

おすすめ

転載: www.cnblogs.com/qinney1109/p/11200347.html