首先,我们要说的是Object.assign的基本用法:

Object.assign(目标,数据1,数据2....);

示例:

//示例1
let obj = {a:1}
let newObj = Object.assign({},obj);
console.log(newObj) //{a: 1}//示例2let obj1 = {name:"zhangsan"};
let obj2 = {age:18};
let obj3 = Object.assign({},obj1,obj2);
console.log(obj3) //{name: "zhangsan", age: 18}

关于Object.assign是浅拷贝还是深拷贝的问题:

答:第一级属性深拷贝,从第二级属性开始就是浅拷贝。

示例:

//示例1  一层深拷贝
let obj = {a:1}
let newObj = Object.assign({},obj);
console.log(newObj); //{a: 1}
newObj.a=2;
console.log(obj); //{a:1}
console.log(newObj); //{a: 2}//示例2  二层浅拷贝
let obj = {a:1,b:{name:"zhangsan"}}
let newObj = Object.assign({},obj);
console.log(newObj); //{a:1,b:{name:"zhangsan"}}
newObj.b.name="lisi";
console.log(obj); //{a:1,b:{name:"lisi"}}
console.log(newObj); //{a:1,b:{name:"lisi"}}

Object.assign 是浅拷贝还是深拷贝?相关推荐

  1. assign深拷贝_经典前端面试题: Object.assign 是浅拷贝还是深拷贝?实现深拷贝的方法有哪些?...

    Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖.后面的源对象的属性将类 ...

  2. Object.assign是浅拷贝还是深拷贝?

    话不多说先举个例子 let source = { a: 1 }; let target = Object.assign({}, source); console.log(target) // { a: ...

  3. ES6之object.assign()是深拷贝还是浅拷贝

    ES6之object.assign()是深拷贝还是浅拷贝 1.概念 浅拷贝--只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存. 深拷贝--会另外创造一个一模一样的对象,新对象跟 ...

  4. JavaScript中的浅拷贝与深拷贝(手写浅拷贝和深拷贝)

    一.简介 数据分为基本数据类型和引用数据类型. 基本数据类型: String.Number.Boolean.Null.Undefined.Symbol.基本数据类型是直接存储在栈中的数据. 引用数据类 ...

  5. 浅拷贝和深拷贝三种方法

    什么是深拷贝和浅拷贝: 深拷贝针对的是复杂的 Object 数据类型,深拷贝需要将属性的各个层级都要拷贝过来. 深拷贝将另一个对象的属性值拷贝过来之后,另一个对象的属性值并不受到影响,因为它自己在堆中 ...

  6. Object.assign的原理及其实现方式

    此文首发于 https://lijing0906.github.io 上周在总结赋值和深浅拷贝的时候提到了Object.assign这种浅拷贝方式.这周谈谈它的原理以及实现方式. 浅拷贝Object. ...

  7. 深拷贝与浅拷贝Object.assign()

    深拷贝与浅拷贝 Object.assign()会身拷贝一个复杂类型 <!DOCTYPE html> <html lang="en"> <head> ...

  8. Object.assign 浅拷贝还是深拷贝

    Object.assign 可以把 n 个源对象拷贝到目标对象中去,如下 let m ={name: {asd: '123'}} let n = Object.assign({}, m) consol ...

  9. object.assign()是深拷贝?还是浅拷贝?

    对于Object.assign()而言,如果对象的属性值为简单类型(string,number),通过Object.assign({},srcobj),得到的新对象为深拷贝:如果属性值是对象或其他引用 ...

最新文章

  1. centOS+uwsgi+nginx 部署flask项目,问题记录
  2. python enumerate用法_【Python】python enumerate用法总结
  3. 如何查看笔记本电脑配置参数_江淮平板运输车图片配置参数查看(罗平)
  4. layuiajax提交表单控制层代码_Ninja Forms:免费的联系表单插件,却提供了付费表单才有的功能【视频+图文】...
  5. C# 数据库并发的解决方案(通用版、EF版)
  6. 再读Socket编程——《UNIX网络编程(卷一)》学习点滴
  7. Python中selenium的玩法,小朋友看了都说学会了
  8. 快速傅里叶变换FFT(一维)
  9. excel 链接批量转图片
  10. Proteus8.12无法仿真STC15系列单片机解决办法
  11. react axios封装
  12. python采集微信聊天信息_我用 Python 破解了微信聊天记录,自动同步微信文章
  13. 计算机与单片机串口程序,51单片机与电脑串口通信,并用数码管显示的两种方法...
  14. 【JZOJ4939】平均值 题解
  15. java graphics2d旋转_反向Java Graphics2D缩放和旋转坐标
  16. PCF8563使用心得
  17. 智慧零售2.0时代,容器云已成电商转型利器
  18. 论文写作——如图所示
  19. Arena | 用Excel设计的RPG游戏
  20. 如何阅读一本书_01

热门文章

  1. 威纶通设置记录历史事件例程
  2. 7-55 吉老师的回归 (15 分)
  3. xp系统可用的远程投屏软件_Windows XP电脑投屏
  4. 新闻|智链万源CEO董宁受邀参加2019可信区块链峰会,解读溯源行业标准
  5. 透过同程艺龙财报看OTA的2021:复苏潮下行业或迎新一轮角逐赛
  6. 实验三 201521410003 15网一 叶萌熙
  7. excel图文教程:应用PQ工具进行数据整理
  8. VIP看剧也要找好友砍一刀!网友喊话优酷:吃相越来越难看了
  9. 黑马推荐系统项目实战【三】基于用户的协同过滤 UserCF
  10. ​LeetCode刷题实战216:组合总和 III