Object.assign

Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

语法:

Object.assign(target, ...sources)

合并对象

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };const returnedTarget = Object.assign(target, source);console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }

合并多个对象

const source1 = { a: 1, b: 2 };
const source2 = { b: 4, c: 5 };
const source3 = { d: 6, f: 5 };const target= Object.assign({}, source1, source2, source3);console.log(target);
// expected output: Object {a: 1, b: 4, c: 5, d: 6, f: 5}

浅克隆

const source = { b: 4, c: 5 };const returnedTarget = Object.assign({}, source);console.log(source);
// expected output: Object { b: 4, c: 5 }console.log(returnedTarget);
// expected output: Object { b: 4, c: 5 }

深克隆

Object.assign() 无法完成深克隆。如需深克隆,需要使用其他办法。

let source = { a: 0 , b: { c: 0}};
let target = JSON.parse(JSON.stringify(source ));

继承属性和不可枚举属性是不能拷贝

const obj = Object.create({foo: 1}, { // foo 是个继承属性。bar: {value: 2  // bar 是个不可枚举属性。},baz: {value: 3,enumerable: true  // baz 是个自身可枚举属性。}
});const copy = Object.assign({}, obj);
console.log(copy); // { baz: 3 }

参考

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

javascript 克隆/clone:Object.assign相关推荐

  1. JavaScript中的Object.assign()方法

    目录 介绍 什么是Object.assign()? JavaScript可枚举属性 语法和参数 您可以使用Object.assign()方法做什么? 合并对象 克隆对象 关于Object.assign ...

  2. es6 javascript对象方法Object.assign()

    1  基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). var target = { a: 1 }; var ...

  3. Object.create()和Object.assign()

    一.Object.create() 该方法用于创建一个新对象,并为其指定原型对象和属性. 语法:Object.create(prototype,description); proto:(必须),表示新 ...

  4. 展开运算符和object.assign()的区别

    Object Spread 和 Object.assign 在功能上很相似.你应该使用哪一个? 事实证明,答案比你想象的要微妙许多. Object Spread 概论 object Spread 运算 ...

  5. IE浏览器兼容Object.assign踩过的坑

    IE浏览器兼容Object.assign踩过的坑 1.背景: 使用Object.assign,又在IE浏览器上访问时,会报该方法不存在~ ERROR:对象不支持"assign"属性 ...

  6. JavaScript 复制对象与Object.assign方法无法实现深复制

    在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...

  7. JavaScript 中 Object.assign() 的用法

    目录 1. Object.assign()对象的拷贝 2. Object.assign()对象的深拷贝 3. 对象的合并 4. 合并具有相同属性的对象 5. 继承属性和不可枚举属性是不能拷贝 6. 原 ...

  8. ecma 2018, javascript spread syntax behaves like Object.assign

    as the subject. It is only supported in Chrome version 60+, so, first check the version, or just use ...

  9. JavaScript深入理解对象方法——Object.assign()

    Object.assign() Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法 Object.assign(target, ... ...

最新文章

  1. Winform 控件自适应 JSP 入门登录案例
  2. GO是更好的编程语言吗?
  3. sklearn随机森林分类类RandomForestClassifier
  4. 配置ANDROID_HOME
  5. 【Python】 Web开发框架的基本概念与开发的准备工作
  6. CDH6.3.0 HUE 整合 Oozie调度
  7. C++ Primer 5th笔记(chap 17 标准库特殊设施)IO库 之操纵符
  8. 设置DateChooser控件的头部文字对齐方式.
  9. DNS域名解析服务(正向解析、反向解析、主从服务器)
  10. mysql外键引用语法_mysql – 外键语法
  11. inputstreamreader未关闭会导致oom_Linux内核OOM机制分析和防止进程被OOM杀死的方法...
  12. php new static,PHP中new self()和new static()的区别用法
  13. (22)FPGA软核、固核、硬核介绍
  14. 张家口以太坊智能合约开发实战pdf_以太坊2.0:实现可扩展性之路漫长而曲折
  15. diskData磁盘数据分析
  16. php mysql_affected_rows获取sql执行影响的行数
  17. 极客大学架构师训练营 性能优化 进程 线程 锁 存储 分布式数据库 第14课 听课总结
  18. Python实战项目(一)刷网页访问量程序
  19. Flutter - 微信朋友圈效果实现
  20. 哪里有免费的ASP空间?

热门文章

  1. Java程序安装失败
  2. loadrunner通过使用libmysql.dll完成mysql的测试
  3. Fastjson反序列化漏洞研究
  4. python使用snappy压缩
  5. MySQL索引的创建、删除和查看
  6. 如何在windows下安装JDK
  7. ruby html解析器
  8. 京东SSO单点登陆实现分析
  9. ASP.NET MVC 使用 FluentScheduler 定时器计划任务
  10. Flex开源开发框架