ES6深入浅出-11 ES6新增的API(上)-1.Object.assign


这些都是es6才有的
Object.assign
在a加上三个属性 分别是p1\p2\p3

以前是这么去加


b的三个属性p1、p2、p3就全部复制到a这个对象上了。



把后面的东西放到前面的东西上
两个对象都有同一个属性

后面有的重复的会覆盖前面
多个对象
再来一个c对象。

先把b的弄到a上面,再c的弄到a上面。

让c也有同样的属性a1 看看会不会覆盖前面的


深拷贝还是浅拷贝

a=1,
b=a,b的值也是1,把a的数值拷贝到b上。
最终输出的a还是1,a和b是各自的内存存储着自己的值,


a的值不是对象,是内存中地址的引用。




对于大多数语言来说,深拷贝是不可能的


理论上的深拷贝是把heap里面的内存也复制一份。但是完美的深拷贝是不可能的。我们永远无法知道一个函数内用到了哪些数据,除非看它的源码知道用到了哪些数据。

Object.assign所有的拷贝都是浅拷贝。

b里面有个obj对象,给a以后。b的obj和a的obj地址是相同的

修改了a的obj.name那么b的对象的值也变化了。
总结
只拷贝可枚举的属性。

b.toString打印出来对象,toString是不可枚举的


b.b1的值。

b要有get,a要有set,猜可能拷贝过去。这里知道这么一回事就可以了



常用的用法是第一个参数是一个空对象,这样就可以接受别的对象的所有属性。

同样的目的,不一样的写法

我的总结:
1.复制后面的对象属性到前面的,
2.重复属性后面的会覆盖前面的
3.后面对象可以是多个,也就是同时复制多个对象的属性到前面参数第一个对象。
4.null和undefined的属性也会被复制过去。
5.复制对象都是浅拷贝
ES6深入浅出-11 ES6新增的API(上)-1.Object.assign的更多相关文章
- ES6深入浅出-11 ES6新增的API(上)-2.Array新增API
Array.form 把不是数组的东西变成数组.最常见的就是把伪数组变成数组 那么什么是伪数组 这就是伪数组,因为它不是继承自Array的原型的对象.它只是一个看起来很像数组的数组 只看下面的代码.a ...
- ES6深入浅出-12 ES6新增的API(下)-1.录屏
String.includes es5里面判断字符串是否存在的方法 search searcg的厉害之处是可以使用正则 match正则的方式 repeat -1遍,就不合法 startsWith 判断 ...
- ES6深入浅出-10 ES6新增的数据类型-2.Set与数组去重
一种新的数据类型,它是对象的一种,Set,很像数组,又不是数组. Set 类型 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...
- ES6深入浅出-10 ES6新增的数据类型-1.Symbol与隐藏属性
ES5现有的数据类型.7种数据类型. 新的类型是属于Object 最普通的类型.plain object 数组array 函数function 下面这些都属于Object类型. 今天要讲的 set类型 ...
- ES6深入浅出-7 新版的类(上集)-1.介绍原型
ES6新出的关键class BE受雇与网景开发了JS 当我们在写一个对象的时候,我们实际上内存的形式表示. obj等于一个空对象,可以直接toString.它为什么可以有toString window ...
- ES6深入浅出-7 新版的类(上集)-2.介绍JS中的类
声明对象原型,公有属性. obj对象,它用一个属性__proto__记录了自己的原型 改掉它的原型为公有属性.那么obj这个对象及有了hi的方法.因为obj自己没有hi.那么就去自己的原型上去找了. ...
- ES6深入浅出-10 ES6新增的数据类型-3.其他类型
Map类型 Map 类型 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map Ma ...
- ES6深入浅出_汇总贴
H:\BaiDu\ES6深入浅出-wjw ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https:/ ...
- es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式
es6 Object.assign 目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...
随机推荐
- Dubbo源码分析:Dubbo协议解码
Dubbo协议解码时序图
- IDEA快速实现接口快捷方式
IDEA快速实现接口快捷方式 ALT +INSERT
- bg/fg/jobs
用于将某个任务放置后台运行,一般会与 ctrl+ z , fg, & 符号联用. 典型的场景就是将耗时的任务放于后台运行,例如打包某个占用空间大的目录,
- 2-使用git管理一个单片机程序
https://www.cnblogs.com/yangfengwu/p/10842205.html 我用电脑压缩一个文件,然后通过git上传,然后在新买的linux系统通过wget 网络下载这个压缩 ...
- 洛谷 P2627 修剪草坪 题解
P2627 修剪草坪 题目描述 在一年前赢得了小镇的最佳草坪比赛后,Farm John变得很懒,再也没有修剪过草坪.现在,新一轮的最佳草坪比赛又开始了,Farm John希望能够再次夺冠. 然而,Fa ...
- GoCN每日新闻(2019-09-26)
1. go-gin-api 路由中间件:Jaeger 链路追踪(六)https://mp.weixin.qq.com/s/Ea28475_UTNaM9RNfgPqJA2. golang interfa ...
- Ring3挂起进程,跟恢复进程.
目录 Ring3挂起进程,跟恢复进程. 一丶简介 二丶代码 Ring3挂起进程,跟恢复进程. 一丶简介 有时候我们做对抗的时候可能会遇到.一个进程常常操作我们.但是我们 可以通过挂起进程来挂起它让它无 ...
- manjaro (arch) 安装搜狗输入法
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/sogou_input_install_in_arch_manja ...
- 读取中文文件到CString
CString strFileName = _T("D:\\ai\\100.json"); CFile file; file.Open(strFileName, CFile:: ...
- SQL数据清洗
大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>,从本节课程开始,我们的课程就会变得越来越实战,也会越来越有意思了: 我们课程的主体叫MySQL数据分析实战,那我们用 ...