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

语法:

Object.assign(target, ...sources)

实例:

var obj = { a: 1 };
var copy = Object.assign({}, obj);
console.log(copy); // { a: 1 }

如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。

String类型和 Symbol 类型的属性都会被拷贝。

在出现错误的情况下,例如,如果属性不可写,会引发TypeError,如果在引发错误之前添加了任何属性,则可以更改target对象。

注意,Object.assign 不会跳过那些值为 null 或 undefined 的源对象


function test() {'use strict';let obj1 = { a: 0 , b: { c: 0}};let obj2 = Object.assign({}, obj1);console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}obj1.a = 1;console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}obj2.a = 2;console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 0}}obj2.b.c = 3;console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 3}}console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 3}}// Deep Cloneobj1 = { a: 0 , b: { c: 0}};let obj3 = JSON.parse(JSON.stringify(obj1));obj1.a = 4;obj1.b.c = 4;console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}}
}test();

参考链接:https://www.cnblogs.com/zhouyideboke/p/9556296.html

js把两个对象合并成一个对象相关推荐

  1. 两个对象合并成一个对象(js、jq、es6)

    两个对象合并成一个对象(js.jq.es6) ES6之前就循环遍历咯,ES6浅拷贝的话可以用**Object.assign();**当然你如果项目里有jquery/underscore/lodash甚 ...

  2. js 将多个对象合并成一个对象 assign方法

    js 将多个对象合并成一个对象 assign方法 ES6在Object新加的方法  assign() 1.作用:将多个对象{}  合并成一个独立对象. 2.使用方式: Object.assign(合并 ...

  3. JS将两个数组合并成一个对象

    将两个数组合并成一个对象 let options = [];let times = [30, 60, 120, 300, 420, 540, 720, 900, 1200];let timesDesc ...

  4. js 将多个对象合并成一个对象

    obj3= Object.assign(obj1,obj2);

  5. 字符串对象转数组对象_js对象转数组的方法 js怎么将数组对象转变成字符串

    只需要一句,arr.__proto__=[];但是要注意浏览器支持__proto__才行,最新的浏览器应该都支持. 以下两种都可以解决此问题: function transform(obj){ var ...

  6. python list合并_python基础===两个list合并成一个dict的方法

    def Run(): list2 = [, , , , ]; list3 = ["a", "b", "c", "d",& ...

  7. js中两个对象的比较

    代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...

  8. 怎么把两个PDF合并成一个?这几种操作轻松合并

    我们在工作中处理过的文件有很多,有时候为了工作更方便,我们通常需要把两个或是多个文件合并成为一个PDF文件,这样只需要打开这一个文件就可以查看全部内容,那么怎么把两个PDF合并成一个呢?这几种操作都可 ...

  9. python如何将两个list合并成字典_怎么把两个列表合并成字典 论Python怎样将两个list合并为一个字典...

    Python怎样把2个列表合成为一个字典? 怎样把2个列表合成一个字典里了?如果你从一开始就选择低下头的话你就可以一直低着头.可是如果你一开始选择了昂着头的话你就永远不能低头了.荣辱说到底只是一瞬间的 ...

最新文章

  1. MyBatis原理分析之四:一次SQL查询的源码分析
  2. RAC环境下的备份与恢复(二)
  3. 行代码入门python_新浪微博Android客户端开发视频教程(36讲)
  4. CodeForces - 1348D Phoenix and Science(贪心)
  5. 【linux】Centos 初始安装后开启网络以及配置静态IP
  6. 小企业如何才能做强做大?
  7. 借贷宝java_【人人行(借贷宝)Java面试】借贷宝java后端开发面经。-看准网
  8. 使用Gitee和Sourcetree进行Keil版本控制
  9. 网络规划设计师水平考试备考资料(1.前言及目录)
  10. JAVA网络协同办公自动化
  11. 读书:找到锚点,然后把自己给钉死
  12. iOS keyChain 研究
  13. 我想做安卓开发,怎么系统学习?
  14. 神经网络与深度学习 相关
  15. 魔鬼与牧师动作分离版
  16. MS17-010永恒之蓝漏洞利用,win32安装,windows 7 32位
  17. 后台控制游戏开关_今天购买这些开关游戏
  18. ESP32 ESP-IDF增加自定义components 注意事项
  19. linux命令 清空文件夹,linux清空文件夹命令问题
  20. c++俄罗斯方块 完整源代码

热门文章

  1. java 网关ip_Linux 修改IP地址和网关
  2. 学习平面设计是自学好,还是报平面设计培训班好
  3. KEIL 声明隐晦declared implicitly和重复定义symbol multiply defined
  4. 深入浅出学习 TypeScript 语言
  5. 数据池,集合及深浅拷贝
  6. mutable的使用
  7. 拆解PowerApps - 请假申请 -1
  8. c语言先序遍历递归算法
  9. matlab箱图所有点,MATLAB:多个不同维度的箱线图画在一起
  10. Thymeleaf 标签学习 之 th:if 和 th:unless 的使用