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は)
同じ属性は、属性値は、後で説明します。