详解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 相关文章推荐
获取客户端网卡MAC地址和IP地址实现JS代码
Mar 17 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
Mar 28 Javascript
用客户端js实现带省略号的分页
Apr 27 Javascript
js校验表单后提交表单的三种方法总结
Feb 28 Javascript
JavaScript中常见的字符串操作函数及用法汇总
May 04 Javascript
jQuery实现tab选项卡效果的方法
Jul 08 Javascript
微信小程序  自定义创建详细介绍
Oct 27 Javascript
利用js获取下拉框中所选的值
Dec 01 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
原生js实现简单的链式操作
Jul 04 Javascript
在 Angular中 使用 Lodash 的方法
Feb 11 Javascript
小程序实现背景音乐播放和暂停
Jun 19 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+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP 模板高级篇总结
2006/12/21 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
Div Select挡住的解决办法
2008/08/07 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
VUE重点问题总结
2018/03/19 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
Python数据分析库pandas基本操作方法
2018/04/08 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
互动出版网:专业书籍
2017/03/21 全球购物
模具专业毕业生自荐书范文
2014/02/19 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
个人工作保证书
2015/02/28 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书