详解ES6 中的Object.assign()的用法实例代码


Posted in Javascript onJanuary 11, 2021

方法Object.assign()
作用:将sourse对象的 赋值给目标对象,两者都有的会覆盖,target独有会保留,sourse独有会添加
使用方法

Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。

var object1 = { a: { b: 1 } };

ar object2 = Object.assign({}, object1);

object1.a.b = 2;

console.log(object2.a.b);

2.用途

2.1为对象添加属性

 2.2为对象添加方法

2.3克隆对象

function copyFnc(origin) {

return Object.assign({}, origin)}

var sur = { a: 1, b: 2 };

console.log(copyFnc(sur));

上面代码将原始对象拷贝到一个空对象,就得到了原始对象的克隆。

不过,采用这种方法克隆,只能克隆原始对象自身的值,不能克隆它继承的值。如果想要保持继承链,可以采用下面的代码。

function clone(origin) {

let originProto = Object.getPrototypeOf(origin);

return Object.assign(Object.create(originProto), origin);

}

在JS里子类利用Object.getPrototypeOf去调用父类方法,用来获取对象的原型。

2.4 合并多个对象

//多个对象合并到某个对象

const merge = (target, ...sources) => Object.assign(target, ...sources);

//多个对象合并到新对象

const merge = (...sources) => Object.assign({}, ...sources);

2.5为属性指定默认值

const DEFAULTS = {
logLevel: 0,
outputFormat: 'html'};
function processContent(options) {let options = Object.assign({}, DEFAULTS, options);
}

到此这篇关于详解ES6 Object.assign()的用法及用途的文章就介绍到这了,更多相关ES6 Object.assign()的用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 Javascript
jQuery模拟新浪微博首页滚动效果的方法
Mar 11 Javascript
Bootstrap3制作搜索框样式的方法
Jul 11 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
AngularJS select设置默认值的实现方法
Aug 25 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
React.js绑定this的5种方法(小结)
Jun 05 Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 Javascript
vue项目移动端实现ip输入框问题
Mar 19 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
Nov 06 Javascript
vue实现防抖的实例代码
Jan 11 #Vue.js
详解uniapp的全局变量实现方式
Jan 11 #Javascript
微信小程序抽奖组件的使用步骤
Jan 11 #Javascript
JS数组索引检测中的数据类型问题详解
Jan 11 #Javascript
了不起的11个JavaScript代码重构最佳实践小结
Jan 11 #Javascript
js删除对象中的某一个字段的方法实现
Jan 11 #Javascript
jQuery实现购物车全功能
Jan 11 #jQuery
You might like
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
7个Javascript地图脚本整理
2009/10/20 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
详解Python中expandtabs()方法的使用
2015/05/18 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
python利用opencv保存、播放视频
2020/11/02 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
料理师求职信
2014/01/30 职场文书
企业年会主持词
2014/03/27 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
新闻传播专业求职信
2014/07/22 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
SQL注入详解及防范方法
2021/12/06 MySQL
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸