详解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自定义排序 node运行 实例
Jun 05 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
Sep 13 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 Javascript
在JavaScript中使用严格模式(Strict Mode)
Jun 13 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
jQuery 隐藏/显示效果函数用法实例分析
May 20 jQuery
vue 动态创建组件的两种方法
Dec 31 Vue.js
(开源)微信小程序+mqtt,esp8266温湿度读取
Apr 02 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 debug 安装技巧
2011/04/30 PHP
php在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
php注册登录系统简化版
2020/12/28 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
Javascript 解疑
2009/11/11 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
js 窗口抖动示例
2013/09/04 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
ExpressJS入门实例
2015/01/14 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
总结Python编程中三条常用的技巧
2015/05/11 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Python3 修改默认环境的方法
2019/02/16 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
英国女装网上商店:I Saw It First
2018/10/18 全球购物
离婚协议书范本(2014版)
2014/09/28 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
交通事故协议书范文
2014/10/23 职场文书
冰雪公主观后感
2015/06/16 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
实习感想范文
2015/08/10 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
如何在Python中创建二叉树
2021/03/30 Python
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL