详解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 相关文章推荐
HTML中不支持静态Expando的元素的问题
Mar 08 Javascript
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
Oct 29 Javascript
javascript实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
JS运行耗时操作的延时显示方法
Nov 19 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
Feb 08 Javascript
简述AngularJS的控制器的使用
Jun 16 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
Apr 27 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 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
德生PL660的电路分析和打磨
2021/03/02 无线电
香妃
2021/03/03 冲泡冲煮
PHP系统流量分析的程序
2006/10/09 PHP
php查看当前Session的ID实例
2015/03/16 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php检测url是否存在的方法
2015/04/14 PHP
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
js常用DOM方法详解
2017/02/04 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Python 项目转化为so文件实例
2019/12/23 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
大专生工程监理求职信
2013/10/04 职场文书
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
政治表现评语
2014/05/04 职场文书
Django程序的优化技巧
2021/04/29 Python
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫