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

1、Object.assign()可以在对象为一层的时候,实现简单的“深拷贝功能”

var obj1 = {a:'1',b:'2'}
var obj2 = Object.assign({}, obj1 )
obj2.a = '3'
console.log(obj1) // {a:'1',b:'2'}
console.log(obj2)  //{a:'3',b:'2'}
 
当被可枚举属性为一层的对象时,使用Object.assign可以实现简单的‘深拷贝’功能,不会改变obj1的数据
 

2、Object.assign()可以在对象为两层或者多层的时候,此时第一种的“深拷贝功能”便无法继续使用。

var obj1 = {name:{a:'1',b:'2'}}
var obj2 = Object.assign({}, obj1 )
obj2 .name.a = '4'
console.log(obj1 )   //name: {a: 4, b: '2'}

console.log(obj2 )   //name: {a: 4, b: '2'}

 
当被可枚举属性为多层的对象时,使用Object.assign可以复制obj1的内容,但是会改变obj1的数据
 

最新文章

  1. linux mount/umount挂载命令解析。
  2. [LeetCode] Valid Anagram 验证变位词
  3. Linux操作系统时间与BIOS硬件时间
  4. VS2010中无法嵌入互操作类型“......”,请改用适用的接口的解决方法
  5. Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] C. Weakness and Poorness 三分 dp
  6. GNOME Shell叫板Ubuntu Unity:优劣PK
  7. 【POJ】2528 Mayor's posters ——离散化+线段树
  8. hessian原理解析一(客户端分析)
  9. 01 Mybatis 的配置和使用
  10. css学习の第一四弹—代码格式简写归纳
  11. CCM和GCM
  12. Hello vue.js的随笔记录
  13. java编程规范(持续更新)
  14. dell g3:安装ubuntu16.04 + CUDA8.0
  15. javascript 生成MD5加密
  16. 让你的照片更鲜艳------hsv拉伸
  17. 〖Linux〗git push orgin master不能解析域名的解决方法
  18. jmeter随笔(34)-WebSocket协议接口测试实战
  19. python 编码类型
  20. java面向对象基础复习

热门文章

  1. 字符编码,存储引擎及MySQL字段类型相关知识点
  2. 三种循环的区别-break语句
  3. typora配置图床
  4. 数据同步gossip协议原理与应用场景介绍
  5. 计算机网络基础07 DNS概述
  6. SpringCloud GateWay网关(入门)
  7. Eureka、Consul、Zookeeper注册中心总结
  8. 解决MSsql 中文变成"?"的问题
  9. LeetCode-1601 最多可达成的换楼请求数目
  10. OSI网络7层模型,TCP/IP协议族