美文网首页JavaScript
[JavaScript] Object.assign

[JavaScript] Object.assign

作者: 何幻 | 来源:发表于2016-03-10 16:11 被阅读683次
    Object.assign(target, ...sources)
    

    从一个或多个sources对象中,复制所有自身可枚举的属性到target对象中,并返回这个target对象。

    (1)拷贝Symbol类型的属性

    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"}
    

    注:
    nullundefined将被忽略,
    这里,只有字符串类型的原始值包装后具有可枚举属性。

    相关文章

      网友评论

        本文标题:[JavaScript] Object.assign

        本文链接:https://www.haomeiwen.com/subject/glptlttx.html