[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は無視されます.ここでは、文字列タイプの元の値だけが包装された後、列挙可能な属性があります.