详解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 相关文章推荐
给artDialog 5.02 增加ajax get功能详细介绍
Nov 13 Javascript
浅析jquery某一元素重复绑定的问题
Jan 03 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
简单易用的倒计时js代码
Aug 04 Javascript
javascript的理解及经典案例分析
May 20 Javascript
AngularJS 整理一些优化的小技巧
Aug 18 Javascript
JavaScript编写一个简易购物车功能
Sep 17 Javascript
使用原生js+canvas实现模拟心电图的实例
Sep 20 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
seajs和requirejs模块化简单案例分析
Aug 26 Javascript
axios实现文件上传并获取进度
Mar 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 图片加水印与上传图片加水印php类
2010/05/12 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
React快速入门教程
2017/01/17 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
django框架如何集成celery进行开发
2017/05/24 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
python多线程使用方法实例详解
2019/12/30 Python
python实现文法左递归的消除方法
2020/05/22 Python
python绘图模块之利用turtle画图
2021/02/12 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
如何用JQuery进行表单验证
2013/05/29 面试题
教师年度考核自我鉴定
2014/01/19 职场文书
业务员的岗位职责
2014/03/15 职场文书
教师对学生的评语
2014/04/28 职场文书
团队口号大全
2014/06/06 职场文书
生物科学专业自荐书
2014/06/20 职场文书
商铺门前三包责任书
2014/07/25 职场文书
暑期培训班策划方案
2014/08/26 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
初二学生评语大全
2014/12/26 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle