详解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 相关文章推荐
Javascript 二维数组
Nov 26 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
js 博客内容进度插件详解
Feb 19 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
JSONP解决JS跨域问题的实现
May 25 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可生成缩略图的文件上传类实例
2014/12/17 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
Python使用django获取用户IP地址的方法
2015/05/11 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
大三学习计划书范文
2014/05/02 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
幼儿园运动会口号
2014/06/07 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
办公室卫生管理制度
2015/08/04 职场文书
心得体会格式及范文
2016/01/25 职场文书
如何拟写通知正文?
2019/04/02 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
MySQL 条件查询的常用操作
2022/04/28 MySQL