Javascript Objectの冷門関数assign

2538 ワード

Object関数は、複数のオブジェクトを結合するためのassignという関数を提供します.
Object.assign(…)
複数のオブジェクトをこの関数に渡すことができます.これらのオブジェクトには独自の属性があり、列挙可能な属性があり、最初のオブジェクトにコピーされます.
var a={name:'jack'};
var b={age:10};
Object.assign(a,b);
console.log(a) // 'Object {name: "jack", age: 10}'
この方法は導入された最初のオブジェクトを修正しますので、関数は最後のreturnの最初のオブジェクトになりますので、このような変更に注意してください.
関数としての最初の参加者を送ることができます.このように残りのオブジェクトは固有であり、列挙可能な属性があり、この空のオブジェクトにコピーされ、このオブジェクトに戻ります.不要な変更を避けることができます.
var a={name:'jack'};
var b={age:10};
var c=Object.assign({},a,b);
console.log(c) //  'Object {name: "jack", age: 10}'
繰り返し表示される属性は、左から右に向かってパラメータを操作するため、右の値に対して上書きされます.
したがって、参の順序は最終結果に影響を及ぼします.
var a={name:'jack'};
var b={name:10};
Object.assign(a,b);
console.log(a); // 'Object {name: 10}'
最初のオブジェクトに読み取り専用の属性があり、次のオブジェクトに同名の属性が存在すると、Type Errが生成されます.
Canot assign to read only property属性名'of object's
var a={name:'jack'};
Object.defineProperty(a,'name',{writable:false});//     
var b={name:10};
Object.assign(a,b);//  
エラーが発生しましたが、すべてのコピーが失敗したという意味ではなく、コピーが成功した属性は影響を受けず、まだコピーされていない属性はコピーされません.
//    
Object.assign({},a,b);
 
 
転載先:https://www.cnblogs.com/splitgroup/p/7027748.html