[JavaScript]Object.assign
981 ワード
Object.assign(target, ...sources)
一つ以上のsources
オブジェクトから、自分自身のエニュメレート・属性をすべてコピーしてtarget
オブジェクトに戻ります.(1)コピー
target
タイプの属性var obj1={a:1};
var obj2={[Symbol('foo')]:2};
var obj=Object.assign({},obj1,obj2);
console.log(obj); // Object {a: 1, Symbol(foo): 2}
(2)継承されているもの、または非列挙属性はコピーされません.var obj1=Object.create({foo:1},{
bar:{
value:2 // ,enumerable false
},
baz:{
value:3,
enumerable:true //
}
});
var obj=Object.assign({},obj1);
console.log(obj); // Object {baz: 3}
(3)元の値は対象に包装されます.var obj=Object.assign({},'123',null,true,undefined,10,Symbol('foo'));
console.log(obj); // Object {0: "1", 1: "2", 2: "3"}
注:Symbol
およびnull
は無視されます.ここでは、文字列タイプの元の値だけが包装された後、列挙可能な属性があります.