★→ASP程序学习群:62655404 微信公众号开发
订阅本栏目 RSS您所在的位置: 深山工作室 > HTML学习 > 正文

Object.assign的一些用法

 2020/11/12 20:19:03  字体:  浏览 1144 我要评论
需要定制网站程序、公众号程序、微信小程序可以联系:565449214或者加微信13961347334(备注:需要技术)
或者在处理一些技术问题时,有什么不懂的地方,随时可以加我QQ:565449214讨论技术或者加QQ群62655404讨论

用法1:替换数组的值

let a = [1,2,3],b = [4,5]
console.log( Object.assign(a,b)); // 后面的值覆盖前面的值,[4,5,3]


用法2:为对象添加属性
下面是es5的写法:this.xxx =xxx

  //    es5的写法
       class Test{
            constructor(x,y){
                this.x =x
                this.y = y
            }

            sum(){
                return this.x + this.y
            }
       }
       let t = new Test(1,2)
       console.log(t.sum());



用Object.assign的写法

       // Object.assign的写法
       class Test2{
           constructor(x,y){
             Object.assign(this,{x,y})
           }
           sum2(){
               
               return this.x + this.y
           }
       }

       let t2 = new Test2(1,2)
       console.log(t2.sum2());



用法3 深度克隆对象

//    用法3 深度克隆对象
     let clone = (orignObj) => {
            let originProto = Object.getPrototypeOf(orignObj)
            return Object.assign(Object.create(originProto), orignObj)
        }
        let obj3 = { name: 'zs', age: 12 }
        console.log(clone(obj3));



用法4:合并对象属性
下面这种写法,合并后,原来的两个对象都已经改变
// example1
        let obj = {name:'zs'} ,obj2 = {name:'zs',age:12}
        let merge = (target, ...v) => Object.assign(target, ...v)
        console.log(merge(obj,obj2));// {name:'zs',age:12}
        console.log(obj,obj2); // 合并后,两个对象都已经改变,值都是 {name:'zs',age:12}
如果不想改变原来的对象,可以用下面这个写法

  // example2 合并后,返回一个新对象,不更改原有对象的属性
        let merge2 = (...v) => Object.assign({}, ...v)
        console.log(merge2(obj, obj2));// {name:'zs',age:12}
        console.log(obj); //  原来的对象保持原样  {name:'zs'}
        console.log(obj2); //  原来的对象保持原样  {name:'zs',age:12}

//合并对象,还可以用展开操作符
let obj5 = {name:'zs'},obj6 = {age:12}
let newOjb = {...obj5,...obj6}
console.log(newOjb);

       
用法5.为默认对象新增属性

const DEFAULTS = { name: 'zs', age: 13 } // 默认对象
let createObjWithDefault = (opt) => Object.assign({}, DEFAULTS, opt)
console.log(createObjWithDefault({ 'addr': 'gz' }));

相关阅读
( 2021/5/8 9:02:37 )定制开发微信小程序的操作流程
( 2021/3/23 10:58:15 )微信小程序打开客服提示:该小程序提供的服务出现故障,请稍后重试
( 2021/3/23 10:49:46 )微信小程序客服会话只能过button让用户主动触发
( 2021/3/23 10:08:46 )uni-app开发微信小程序使用button的open-type为contact调用微信客服不能用view或者js调用
( 2021/3/17 0:30:25 )uni-app用map组件建立微信小程序显示商家地图位置并且打上标志然后点标志进行调用手机地图导航到对应的地址
( 2021/3/17 0:18:41 )用uni-app开发微信小程序用uni.makePhoneCall拨打电话
( 2021/3/16 23:52:37 )uni.openLocation打开地图导航没反应解决方式(参数都设置对就是打不开)
( 2021/3/4 20:25:55 )各个苹果手表型号版本对比以及查看苹果手机Apple Watch型号
共有0条关于《Object.assign的一些用法》的评论
发表评论
正在加载评论……
返回顶部发表评论
呢 称:
表 情:
内 容:
评论内容:不能超过 1000 字,需审核,请自觉遵守互联网相关政策法规。
验证码: 验证码 
深山工作室网友评论声明,请自觉遵守互联网相关政策法规。

您发布的评论即表示同意遵守以下条款:
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;
二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;
三、本站对您所发布内容拥有处置权。

更多信息>>栏目类别选择
uni-app
rss学习
个人空间
网站设计
网站公告
下载
photoshop学习
ASP学习
DIV+CSS学习
SEO搜索引擎忧化
java学习
HTML学习
网站信息
网站类信息
更多>>同类信息
jQuery设置提交表单disabled属性所有input、button、extarea、select、checkbox、radio都生效
window.location.href跳转无反应不跳转解决
window.location.href和setTimeout结合时间错误
各种钱货币字母转换对应的符号
jquery实现移动端下拉加载刷新更多信息
删除程序页面代码中的注释标签
服务器iis配置.mp4视频格式播放(网页播放.mp4有声音但没有图像画面)
jquery实现单选按钮radio选中和取消 使用prop()代替attr()
更多>>最新添加文章
定制开发微信小程序的操作流程
微信小程序打开客服提示:该小程序提供的服务出现故障,请稍后重试
微信小程序客服会话只能过button让用户主动触发
uni-app开发微信小程序使用button的open-type为contact调用微信客服不能用view或者js调用
uni-app用map组件建立微信小程序显示商家地图位置并且打上标志然后点标志进行调用手机地图导航到对应的地址
用uni-app开发微信小程序用uni.makePhoneCall拨打电话
uni.openLocation打开地图导航没反应解决方式(参数都设置对就是打不开)
各个苹果手表型号版本对比以及查看苹果手机Apple Watch型号
更多>>随机抽取信息
用于深山在线投票的一个javascript统计checkbox现在选中的个数一边点复选框一边验证并计算现在选了多少个复选框
背景调色板:状态栏还能显示颜色值
uni-app去除点击navigator标签时有背景底色问题
网站页面重新构写,正在验证其它浏览器
httpd.ini伪静态网站分享到微信好友微信朋友圈链接打不开报404错误的解决办法
CSS的常用的一些技巧
凹陷文字
asp加载xml 用于验证目标网站是否更新