[JavaScript] Object.assign

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将被忽略,
这里,只有字符串类型的原始值包装后具有可枚举属性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码表明,ES6允...
    呼呼哥阅读 7,969评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • Object.assign()方法用于将所有可枚举的属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 ...
    执著_7a69阅读 5,752评论 0 2
  • 1.属性的简洁表示法 允许直接写入变量和函数 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量...
    雨飞飞雨阅读 4,849评论 0 3
  • 2014 我的高三时代 高三来临,让黑白覆盖你全部的绚烂 2013年夏季。 北京大学地质博物馆。 一切都起源于那头...
    Vano_阅读 14,135评论 3 4